From eeb9d6c39875c5d6a0ec7b9537de1695400b681d Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 10 Mar 2022 23:16:38 -0800 Subject: [PATCH] macos: request layout with server-side decoration If we have server-side decorations we might need to request a layout in response to the resize notification. We don't need to do this in other cases because we already handle that in the process of doing the resize (and that code is that way because of delayed delivery of NSNotification). --- gdk/macos/GdkMacosWindow.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gdk/macos/GdkMacosWindow.c b/gdk/macos/GdkMacosWindow.c index 7aee71f630..c93be7f49e 100644 --- a/gdk/macos/GdkMacosWindow.c +++ b/gdk/macos/GdkMacosWindow.c @@ -379,8 +379,15 @@ typedef NSString *CALayerContentsGravity; -(void)windowDidResize:(NSNotification *)notification { - _gdk_macos_surface_configure ([self gdkSurface]); - gdk_surface_request_layout (GDK_SURFACE (gdk_surface)); + _gdk_macos_surface_configure (gdk_surface); + + /* If we're using server-side decorations, this notification is coming + * in from a display-side change. We need to request a layout in + * addition to the configure event. + */ + if (GDK_IS_MACOS_TOPLEVEL_SURFACE (gdk_surface) && + GDK_MACOS_TOPLEVEL_SURFACE (gdk_surface)->decorated) + gdk_surface_request_layout (GDK_SURFACE (gdk_surface)); } /* Used by gdkmacosdisplay-translate.c to decide if our sendEvent() handler -- 2.30.2