fix crash in gtk_synthesize_crossing_events()
authorNelson Benítez León <nbenitezl@gmail.com>
Sun, 25 Sep 2022 01:16:18 +0000 (21:16 -0400)
committerNelson Benítez León <nbenitezl@gmail.com>
Sun, 25 Sep 2022 01:25:05 +0000 (21:25 -0400)
Update ancestor between GTK_CROSSING_OUT and
GTK_CROSSING_IN as it may have changed.

Fixes #5190

gtk/gtkmain.c

index 7ea84d48784f6d3e8b2295f66534c7229d109ce9..dfa9e399ef40b5036fc4829faaee0986135b3f8a 100644 (file)
@@ -1186,6 +1186,11 @@ gtk_synthesize_crossing_events (GtkRoot         *toplevel,
   for (widget = new_target; widget; widget = _gtk_widget_get_parent (widget))
     gtk_widget_stack_append (&target_array, g_object_ref (widget));
 
+  if (old_target && new_target)
+    ancestor = gtk_widget_common_ancestor (old_target, new_target);
+  else
+    ancestor = NULL;
+
   crossing.direction = GTK_CROSSING_IN;
 
   seen_ancestor = FALSE;