icon-browser: Stop using ::key-press-event

This commit is contained in:
Matthias Clasen
2018-02-04 22:21:37 +01:00
committed by Carlos Garnacho
parent 6d1b21a028
commit 21d1ab42d1
2 changed files with 27 additions and 6 deletions

View File

@@ -54,6 +54,7 @@ struct _IconBrowserWindow
GtkWidget *image6; GtkWidget *image6;
GtkWidget *label6; GtkWidget *label6;
GtkWidget *description; GtkWidget *description;
GtkEventController *controller;
}; };
struct _IconBrowserWindowClass struct _IconBrowserWindowClass
@@ -286,13 +287,16 @@ populate (IconBrowserWindow *win)
} }
static gboolean static gboolean
key_press_event_cb (GtkWidget *widget, key_event_cb (GtkEventController *controller,
GdkEvent *event, guint keyval,
gpointer data) guint keycode,
GdkModifierType state,
gpointer data)
{ {
IconBrowserWindow *win = data; IconBrowserWindow *win = data;
return gtk_search_bar_handle_event (GTK_SEARCH_BAR (win->searchbar), event); return gtk_search_bar_handle_event (GTK_SEARCH_BAR (win->searchbar),
gtk_get_current_event ());
} }
static void static void
@@ -480,12 +484,31 @@ icon_browser_window_init (IconBrowserWindow *win)
symbolic_toggled (GTK_TOGGLE_BUTTON (win->symbolic_radio), win); symbolic_toggled (GTK_TOGGLE_BUTTON (win->symbolic_radio), win);
win->controller = gtk_event_controller_key_new (GTK_WIDGET (win));
g_signal_connect (win->controller, "key-pressed", G_CALLBACK (key_event_cb), win);
populate (win); populate (win);
} }
static void
icon_browser_window_finalize (GObject *object)
{
IconBrowserWindow *win = ICON_BROWSER_WINDOW (object);
g_hash_table_unref (win->contexts);
g_object_unref (win->controller);
G_OBJECT_CLASS (icon_browser_window_parent_class)->finalize (object);
}
static void static void
icon_browser_window_class_init (IconBrowserWindowClass *class) icon_browser_window_class_init (IconBrowserWindowClass *class)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = icon_browser_window_finalize;
g_type_ensure (ICON_STORE_TYPE); g_type_ensure (ICON_STORE_TYPE);
gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class), gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class),
@@ -516,7 +539,6 @@ icon_browser_window_class_init (IconBrowserWindowClass *class)
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), item_activated); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), item_activated);
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), selected_context_changed); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), selected_context_changed);
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), symbolic_toggled); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), symbolic_toggled);
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), key_press_event_cb);
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), copy_to_clipboard); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), copy_to_clipboard);
} }

View File

@@ -9,7 +9,6 @@
<property name="title" translatable="yes">Icon Browser</property> <property name="title" translatable="yes">Icon Browser</property>
<property name="default-width">1024</property> <property name="default-width">1024</property>
<property name="default-height">768</property> <property name="default-height">768</property>
<signal name="key-press-event" handler="key_press_event_cb"/>
<child type="titlebar"> <child type="titlebar">
<object class="GtkHeaderBar" id="header"> <object class="GtkHeaderBar" id="header">
<property name="title" translatable="yes">Icon Browser</property> <property name="title" translatable="yes">Icon Browser</property>