From: Maxim Zakharov Date: Wed, 27 Oct 2021 00:37:36 +0000 (+1100) Subject: gtk: Hold reference on controller until events are fully handled X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f41d98d104762133c6dcf6aa8194b8a5a36f18fc;p=gtk4.git gtk: Hold reference on controller until events are fully handled Fixes premature controller unreferencing in gtk_event_controller_handle_event() if the controller itself is being removed while handling the event. --- diff --git a/gtk/gtkeventcontroller.c b/gtk/gtkeventcontroller.c index 6892562901..2d0de55383 100644 --- a/gtk/gtkeventcontroller.c +++ b/gtk/gtkeventcontroller.c @@ -367,10 +367,10 @@ gtk_event_controller_handle_event (GtkEventController *controller, g_object_ref (controller); retval = controller_class->handle_event (controller, event, x, y); - g_object_unref (controller); g_clear_object (&priv->target); g_clear_pointer (&priv->event, gdk_event_unref); + g_object_unref (controller); return retval; }