forked from AuroraMiddleware/gtk
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:
parent
8ce01084af
commit
8a27302d56
@ -2439,6 +2439,8 @@ propagate_event_up (GtkWidget *widget,
|
|||||||
else if (gtk_widget_get_realized (widget))
|
else if (gtk_widget_get_realized (widget))
|
||||||
handled_event = gtk_widget_event (widget, event);
|
handled_event = gtk_widget_event (widget, event);
|
||||||
|
|
||||||
|
handled_event |= !gtk_widget_get_realized (widget);
|
||||||
|
|
||||||
tmp = gtk_widget_get_parent (widget);
|
tmp = gtk_widget_get_parent (widget);
|
||||||
g_object_unref (widget);
|
g_object_unref (widget);
|
||||||
|
|
||||||
@ -2492,6 +2494,8 @@ propagate_event_down (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
else if (gtk_widget_get_realized (widget))
|
else if (gtk_widget_get_realized (widget))
|
||||||
handled_event = _gtk_widget_captured_event (widget, event);
|
handled_event = _gtk_widget_captured_event (widget, event);
|
||||||
|
|
||||||
|
handled_event |= !gtk_widget_get_realized (widget);
|
||||||
}
|
}
|
||||||
g_list_free_full (widgets, (GDestroyNotify)g_object_unref);
|
g_list_free_full (widgets, (GDestroyNotify)g_object_unref);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user