summaryrefslogtreecommitdiff
path: root/gtk/gtkeventcontroller.c
diff options
context:
space:
mode:
authorMaxim Zakharov <zakhma@muli.com.au>2021-10-27 11:37:36 +1100
committerMaxim Zakharov <zakhma@muli.com.au>2021-10-28 10:23:32 +1100
commitaf2d0f188c15a120935c35ecbea5d032aeaa2971 (patch)
tree12b320dac9329c0be1207b2b8dcc17a0baa4a0f2 /gtk/gtkeventcontroller.c
parent4ea84d3144a1d2d3b609486c3eda21a1c3be34c2 (diff)
downloadgtk+-af2d0f188c15a120935c35ecbea5d032aeaa2971.tar.gz
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.
Diffstat (limited to 'gtk/gtkeventcontroller.c')
-rw-r--r--gtk/gtkeventcontroller.c2
1 files changed, 1 insertions, 1 deletions
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;
}