[gtk/search-entry-capture] searchentry: Capture events in the bubble phase
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/search-entry-capture] searchentry: Capture events in the bubble phase
- Date: Wed, 27 Jan 2021 03:19:00 +0000 (UTC)
commit 7db60f958d50396d55896333fc727ccdcd635100
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Jan 26 22:17:57 2021 -0500
searchentry: Capture events in the bubble phase
This is an unfortunate naming clash, but it avoids
an event handling clash between the capture widget
and its children.
Fixes: #3098
gtk/gtksearchentry.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtksearchentry.c b/gtk/gtksearchentry.c
index 48bdf5a9f4..8b03286a02 100644
--- a/gtk/gtksearchentry.c
+++ b/gtk/gtksearchentry.c
@@ -667,6 +667,14 @@ capture_widget_key_handled (GtkEventControllerKey *controller,
* If the entry is part of a #GtkSearchBar, it is preferable
* to call gtk_search_bar_set_key_capture_widget() instead, which
* will reveal the entry in addition to triggering the search entry.
+ *
+ * Note that despite the name of this function, the events
+ * are only 'captured' in the bubble phase, which means that
+ * editable child widgets of @widget will receive text input
+ * before it gets captured. If that is not desired, you can
+ * capture and forward the events yourself with
+ * gtk_event_controller_key_forward().
+
**/
void
gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry,
@@ -692,7 +700,7 @@ gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry,
entry->capture_widget_controller = gtk_event_controller_key_new ();
gtk_event_controller_set_propagation_phase (entry->capture_widget_controller,
- GTK_PHASE_CAPTURE);
+ GTK_PHASE_BUBBLE);
g_signal_connect (entry->capture_widget_controller, "key-pressed",
G_CALLBACK (capture_widget_key_handled), entry);
g_signal_connect (entry->capture_widget_controller, "key-released",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]