[gtk+/wip/matthiasc/kill-key-events2: 8/10] inspector: Stop using ::key-press-event
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/kill-key-events2: 8/10] inspector: Stop using ::key-press-event
- Date: Sun, 4 Feb 2018 23:19:16 +0000 (UTC)
commit fbe793865a786b64c9c7cd5fc89a3bdb68ff90e2
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Feb 4 09:29:44 2018 +0100
inspector: Stop using ::key-press-event
gtk/inspector/object-tree.c | 30 ++++++++++++++++++------------
gtk/inspector/prop-list.c | 26 +++++++++++++++++++-------
gtk/inspector/resource-list.c | 29 +++++++++++++++++------------
3 files changed, 54 insertions(+), 31 deletions(-)
---
diff --git a/gtk/inspector/object-tree.c b/gtk/inspector/object-tree.c
index d4a491d..f0cade1 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
@@ -700,15 +701,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;
@@ -772,7 +771,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;
@@ -782,10 +782,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 ff108d7..d88df3e 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 7c72a70..0e9b52f 100644
--- a/gtk/inspector/resource-list.c
+++ b/gtk/inspector/resource-list.c
@@ -391,15 +391,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;
@@ -463,7 +461,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;
@@ -473,10 +472,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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]