From ca79688f52fc7c173325bc1efe955912139231a6 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Wed, 2 Mar 2022 01:04:53 -0800 Subject: [PATCH] macos: clear window stack before requesting motion We want to ensure that we recalculate the sort order of windows before processing the motion. Generally this would be done in response from the display server in GdkMacosWindow, but I've seen it possible to race there. --- gdk/macos/gdkmacossurface.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c index add5f15db7..f6140deafa 100644 --- a/gdk/macos/gdkmacossurface.c +++ b/gdk/macos/gdkmacossurface.c @@ -1270,11 +1270,15 @@ _gdk_macos_surface_get_buffer (GdkMacosSurface *self) static void _gdk_macos_surface_do_delayed_show (GdkMacosSurface *self) { + GdkSurface *surface = (GdkSurface *)self; + g_assert (GDK_IS_MACOS_SURFACE (self)); self->show_on_next_swap = FALSE; [self->window showAndMakeKey:YES]; - gdk_surface_request_motion (GDK_SURFACE (self)); + + _gdk_macos_display_clear_sorting (GDK_MACOS_DISPLAY (surface->display)); + gdk_surface_request_motion (surface); } void -- 2.30.2