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
This commit is contained in:
Peter Bloomfield 2018-12-17 12:04:10 -05:00
parent 8ce01084af
commit 8a27302d56

View File

@ -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);