summaryrefslogtreecommitdiff
path: root/gtk/gtkmain.c
diff options
context:
space:
mode:
authorNelson Benítez León <nbenitezl@gmail.com>2022-09-24 21:16:18 -0400
committerNelson Benítez León <nbenitezl@gmail.com>2022-09-24 21:25:05 -0400
commit94a4c2cb4019a6d155ef1b4d43d3107d8449bc98 (patch)
treee11a53a5e6ea7c5686750c4abd4cb4aa841a70d5 /gtk/gtkmain.c
parentcefb0a3eb8f9a52283ce4368ccc78425db0914b0 (diff)
downloadgtk+-94a4c2cb4019a6d155ef1b4d43d3107d8449bc98.tar.gz
fix crash in gtk_synthesize_crossing_events()
Update ancestor between GTK_CROSSING_OUT and GTK_CROSSING_IN as it may have changed. Fixes #5190
Diffstat (limited to 'gtk/gtkmain.c')
-rw-r--r--gtk/gtkmain.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 7ea84d4878..dfa9e399ef 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -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;