summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2021-08-23 15:30:21 +0200
committerCarlos Garnacho <carlosg@gnome.org>2021-08-23 15:38:33 +0200
commit90edb7641584a23ae1979dcb960c3c862f4596e2 (patch)
tree29f802429b77f5d180cf71255586dc298814984f
parent8f397502df322c2f4726c996b3c7640cd3e50b34 (diff)
downloadgtk+-90edb7641584a23ae1979dcb960c3c862f4596e2.tar.gz
gtksearchentry: Consume click events after pressing on icon
This results in user actions, so the gesture should consume the events.
-rw-r--r--gtk/gtksearchentry.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c
index 6a9d3c8969..ebee742622 100644
--- a/gtk/gtksearchentry.c
+++ b/gtk/gtksearchentry.c
@@ -491,6 +491,16 @@ gtk_search_entry_accessible_init (GtkAccessibleInterface *iface)
}
static void
+gtk_search_entry_icon_press (GtkGestureClick *press,
+ int n_press,
+ double x,
+ double y,
+ GtkSearchEntry *entry)
+{
+ gtk_gesture_set_state (GTK_GESTURE (press), GTK_EVENT_SEQUENCE_CLAIMED);
+}
+
+static void
gtk_search_entry_icon_release (GtkGestureClick *press,
int n_press,
double x,
@@ -601,6 +611,7 @@ gtk_search_entry_init (GtkSearchEntry *entry)
gtk_widget_set_child_visible (entry->icon, FALSE);
press = gtk_gesture_click_new ();
+ g_signal_connect (press, "pressed", G_CALLBACK (gtk_search_entry_icon_press), entry);
g_signal_connect (press, "released", G_CALLBACK (gtk_search_entry_icon_release), entry);
gtk_widget_add_controller (entry->icon, GTK_EVENT_CONTROLLER (press));