summaryrefslogtreecommitdiff
path: root/gtk/gtkmain.c
diff options
context:
space:
mode:
authorPeter Bloomfield <PeterBloomfield@bellsouth.net>2018-12-17 12:04:10 -0500
committerPeter Bloomfield <PeterBloomfield@bellsouth.net>2018-12-17 12:04:10 -0500
commit8a27302d56e4fb271103627d380499781b3e14ed (patch)
tree80099ed1e981ff74c6809880112ed012467d2c7b /gtk/gtkmain.c
parent8ce01084afea49c8aaacf9bd052c969d974ab81b (diff)
downloadgtk+-8a27302d56e4fb271103627d380499781b3e14ed.tar.gz
gtkmain: Terminate two loops early
In propagate_event_{down,up}(), set handled_event to TRUE if a widget is unrealized, so as to terminate the corresponding loop early. See https://gitlab.gnome.org/GNOME/gtk/merge_requests/442
Diffstat (limited to 'gtk/gtkmain.c')
-rw-r--r--gtk/gtkmain.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index ecd9f44781..35a5e77003 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -2439,6 +2439,8 @@ propagate_event_up (GtkWidget *widget,
else if (gtk_widget_get_realized (widget))
handled_event = gtk_widget_event (widget, event);
+ handled_event |= !gtk_widget_get_realized (widget);
+
tmp = gtk_widget_get_parent (widget);
g_object_unref (widget);
@@ -2492,6 +2494,8 @@ propagate_event_down (GtkWidget *widget,
}
else if (gtk_widget_get_realized (widget))
handled_event = _gtk_widget_captured_event (widget, event);
+
+ handled_event |= !gtk_widget_get_realized (widget);
}
g_list_free_full (widgets, (GDestroyNotify)g_object_unref);