diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-02-04 22:21:37 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-04-05 19:26:53 +0200 |
commit | 21d1ab42d18f9b74091d8c3fac15229533a6afec (patch) | |
tree | cc6590335cf7c75d5afa3af1b66dbb0bb1ec679b | |
parent | 6d1b21a0288437d2c8b50a257ab6f48100e4a6cf (diff) | |
download | gtk+-21d1ab42d18f9b74091d8c3fac15229533a6afec.tar.gz |
icon-browser: Stop using ::key-press-event
-rw-r--r-- | demos/icon-browser/iconbrowserwin.c | 32 | ||||
-rw-r--r-- | demos/icon-browser/window.ui | 1 |
2 files changed, 27 insertions, 6 deletions
diff --git a/demos/icon-browser/iconbrowserwin.c b/demos/icon-browser/iconbrowserwin.c index 116a70dc12..91be683739 100644 --- a/demos/icon-browser/iconbrowserwin.c +++ b/demos/icon-browser/iconbrowserwin.c @@ -54,6 +54,7 @@ struct _IconBrowserWindow GtkWidget *image6; GtkWidget *label6; GtkWidget *description; + GtkEventController *controller; }; struct _IconBrowserWindowClass @@ -286,13 +287,16 @@ populate (IconBrowserWindow *win) } static gboolean -key_press_event_cb (GtkWidget *widget, - GdkEvent *event, - gpointer data) +key_event_cb (GtkEventController *controller, + guint keyval, + guint keycode, + GdkModifierType state, + gpointer 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 @@ -480,12 +484,31 @@ icon_browser_window_init (IconBrowserWindow *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); } 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 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); 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), 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), key_press_event_cb); gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), copy_to_clipboard); } diff --git a/demos/icon-browser/window.ui b/demos/icon-browser/window.ui index c56dcbaa6c..ae81f4af49 100644 --- a/demos/icon-browser/window.ui +++ b/demos/icon-browser/window.ui @@ -9,7 +9,6 @@ <property name="title" translatable="yes">Icon Browser</property> <property name="default-width">1024</property> <property name="default-height">768</property> - <signal name="key-press-event" handler="key_press_event_cb"/> <child type="titlebar"> <object class="GtkHeaderBar" id="header"> <property name="title" translatable="yes">Icon Browser</property> |