summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-02-04 09:29:44 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-04-05 19:26:53 +0200
commitc2bd7fcf3520dbce8917d82539db16840f2485ba (patch)
tree0414c1cc6cb73e63091d333a5ef9ac6d333bd18f
parent75024fea6065b21876c00bf575b423cab04abb20 (diff)
downloadgtk+-c2bd7fcf3520dbce8917d82539db16840f2485ba.tar.gz
inspector: Stop using ::key-press-event
-rw-r--r--gtk/inspector/object-tree.c30
-rw-r--r--gtk/inspector/prop-list.c26
-rw-r--r--gtk/inspector/resource-list.c30
-rw-r--r--gtk/inspector/statistics.c31
4 files changed, 74 insertions, 43 deletions
diff --git a/gtk/inspector/object-tree.c b/gtk/inspector/object-tree.c
index 5d215eab46..efb33de6ea 100644
--- a/gtk/inspector/object-tree.c
+++ b/gtk/inspector/object-tree.c
@@ -48,6 +48,7 @@
#include "gtkstylecontext.h"
#include "gtksearchbar.h"
#include "gtksearchentry.h"
+#include "gtkeventcontrollerkey.h"
#include "treewalk.h"
enum
@@ -714,15 +715,13 @@ move_search_to_row (GtkInspectorObjectTree *wt,
}
static gboolean
-key_press_event (GtkWidget *window,
- GdkEvent *event,
- GtkInspectorObjectTree *wt)
+key_pressed (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ GtkInspectorObjectTree *wt)
{
- guint keyval, state;
-
- if (gtk_widget_get_mapped (GTK_WIDGET (wt)) &&
- gdk_event_get_keyval (event, &keyval) &&
- gdk_event_get_state (event, &state))
+ if (gtk_widget_get_mapped (GTK_WIDGET (wt)))
{
GdkModifierType default_accel;
gboolean search_started;
@@ -786,7 +785,8 @@ key_press_event (GtkWidget *window,
return GDK_EVENT_STOP;
}
- return gtk_search_bar_handle_event (GTK_SEARCH_BAR (wt->priv->search_bar), event);
+ return gtk_search_bar_handle_event (GTK_SEARCH_BAR (wt->priv->search_bar),
+ gtk_get_current_event ());
}
else
return GDK_EVENT_PROPAGATE;
@@ -796,10 +796,16 @@ static void
on_hierarchy_changed (GtkWidget *widget,
GtkWidget *previous_toplevel)
{
+ GtkEventController *controller;
+ GtkWidget *toplevel;
+
if (previous_toplevel)
- g_signal_handlers_disconnect_by_func (previous_toplevel, key_press_event, widget);
- g_signal_connect (gtk_widget_get_toplevel (widget), "key-press-event",
- G_CALLBACK (key_press_event), widget);
+ g_object_set_data (G_OBJECT (previous_toplevel), "controller", NULL);
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ controller = gtk_event_controller_key_new (toplevel);
+ g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
}
static void
diff --git a/gtk/inspector/prop-list.c b/gtk/inspector/prop-list.c
index ff108d788e..d88df3e322 100644
--- a/gtk/inspector/prop-list.c
+++ b/gtk/inspector/prop-list.c
@@ -35,7 +35,9 @@
#include "gtkpopover.h"
#include "gtksearchentry.h"
#include "gtklabel.h"
+#include "gtkmain.h"
#include "gtkstack.h"
+#include "gtkeventcontrollerkey.h"
enum
{
@@ -82,18 +84,22 @@ search_close_clicked (GtkWidget *button,
}
static gboolean
-key_press_event (GtkWidget *window,
- GdkEvent *event,
- GtkInspectorPropList *pl)
+key_pressed (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ GtkInspectorPropList *pl)
{
if (!gtk_widget_get_mapped (GTK_WIDGET (pl)))
return GDK_EVENT_PROPAGATE;
- if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (pl->priv->search_entry), event))
+ if (gtk_search_entry_handle_event (GTK_SEARCH_ENTRY (pl->priv->search_entry),
+ gtk_get_current_event ()))
{
gtk_stack_set_visible_child (GTK_STACK (pl->priv->search_stack), pl->priv->search_entry);
return GDK_EVENT_STOP;
}
+
return GDK_EVENT_PROPAGATE;
}
@@ -101,10 +107,16 @@ static void
hierarchy_changed (GtkWidget *widget,
GtkWidget *previous_toplevel)
{
+ GtkEventController *controller;
+ GtkWidget *toplevel;
+
if (previous_toplevel)
- g_signal_handlers_disconnect_by_func (previous_toplevel, key_press_event, widget);
- g_signal_connect (gtk_widget_get_toplevel (widget), "key-press-event",
- G_CALLBACK (key_press_event), widget);
+ g_object_set_data (G_OBJECT (previous_toplevel), "controller", NULL);
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ controller = gtk_event_controller_key_new (toplevel);
+ g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
}
static void
diff --git a/gtk/inspector/resource-list.c b/gtk/inspector/resource-list.c
index 8b28f01463..c7aec3241e 100644
--- a/gtk/inspector/resource-list.c
+++ b/gtk/inspector/resource-list.c
@@ -29,6 +29,7 @@
#include "gtktextbuffer.h"
#include "gtktreeselection.h"
#include "gtktreestore.h"
+#include "gtkeventcontrollerkey.h"
#include <glib/gi18n-lib.h>
@@ -394,15 +395,13 @@ move_search_to_row (GtkInspectorResourceList *sl,
}
static gboolean
-key_press_event (GtkWidget *window,
- GdkEvent *event,
- GtkInspectorResourceList *sl)
+key_pressed (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ GtkInspectorResourceList *sl)
{
- guint keyval, state;
-
- if (gtk_widget_get_mapped (GTK_WIDGET (sl)) &&
- gdk_event_get_keyval (event, &keyval) &&
- gdk_event_get_state (event, &state))
+ if (gtk_widget_get_mapped (GTK_WIDGET (sl)))
{
GdkModifierType default_accel;
gboolean search_started;
@@ -466,7 +465,8 @@ key_press_event (GtkWidget *window,
return GDK_EVENT_STOP;
}
- return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar), event);
+ return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar),
+ gtk_get_current_event ());
}
else
return GDK_EVENT_PROPAGATE;
@@ -476,10 +476,16 @@ static void
on_hierarchy_changed (GtkWidget *widget,
GtkWidget *previous_toplevel)
{
+ GtkEventController *controller;
+ GtkWidget *toplevel;
+
if (previous_toplevel)
- g_signal_handlers_disconnect_by_func (previous_toplevel, key_press_event, widget);
- g_signal_connect (gtk_widget_get_toplevel (widget), "key-press-event",
- G_CALLBACK (key_press_event), widget);
+ g_object_set_data (G_OBJECT (previous_toplevel), "controller", NULL);
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ controller = gtk_event_controller_key_new (toplevel);
+ g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
}
static void
diff --git a/gtk/inspector/statistics.c b/gtk/inspector/statistics.c
index 4b90dcfe4f..47fc45ccfb 100644
--- a/gtk/inspector/statistics.c
+++ b/gtk/inspector/statistics.c
@@ -29,6 +29,8 @@
#include "gtktogglebutton.h"
#include "gtktreeselection.h"
#include "gtktreeview.h"
+#include "gtkeventcontrollerkey.h"
+#include "gtkmain.h"
#include <glib/gi18n-lib.h>
@@ -250,15 +252,13 @@ type_data_free (gpointer data)
}
static gboolean
-key_press_event (GtkWidget *window,
- GdkEvent *event,
- GtkInspectorStatistics *sl)
+key_pressed (GtkEventController *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ GtkInspectorStatistics *sl)
{
- guint keyval, state;
-
- if (gtk_widget_get_mapped (GTK_WIDGET (sl)) &&
- gdk_event_get_keyval (event, &keyval) &&
- gdk_event_get_state (event, &state))
+ if (gtk_widget_get_mapped (GTK_WIDGET (sl)))
{
if (keyval == GDK_KEY_Return ||
keyval == GDK_KEY_ISO_Enter ||
@@ -282,7 +282,8 @@ key_press_event (GtkWidget *window,
return GDK_EVENT_PROPAGATE;
}
- return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar), event);
+ return gtk_search_bar_handle_event (GTK_SEARCH_BAR (sl->priv->search_bar),
+ gtk_get_current_event ());
}
else
return GDK_EVENT_PROPAGATE;
@@ -328,10 +329,16 @@ static void
hierarchy_changed (GtkWidget *widget,
GtkWidget *previous_toplevel)
{
+ GtkEventController *controller;
+ GtkWidget *toplevel;
+
if (previous_toplevel)
- g_signal_handlers_disconnect_by_func (previous_toplevel, key_press_event, widget);
- g_signal_connect (gtk_widget_get_toplevel (widget), "key-press-event",
- G_CALLBACK (key_press_event), widget);
+ g_object_set_data (G_OBJECT (previous_toplevel), "controller", NULL);
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ controller = gtk_event_controller_key_new (toplevel);
+ g_object_set_data_full (G_OBJECT (toplevel), "controller", controller, g_object_unref);
+ g_signal_connect (controller, "key-pressed", G_CALLBACK (key_pressed), widget);
}
static void