summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-02-04 22:21:37 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-04-05 19:26:53 +0200
commit21d1ab42d18f9b74091d8c3fac15229533a6afec (patch)
treecc6590335cf7c75d5afa3af1b66dbb0bb1ec679b
parent6d1b21a0288437d2c8b50a257ab6f48100e4a6cf (diff)
downloadgtk+-21d1ab42d18f9b74091d8c3fac15229533a6afec.tar.gz
icon-browser: Stop using ::key-press-event
-rw-r--r--demos/icon-browser/iconbrowserwin.c32
-rw-r--r--demos/icon-browser/window.ui1
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>