From 25b3bd64af352fcda8aa64f59593a3279c49bce8 Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Mon, 28 Feb 2022 02:10:30 -0800 Subject: [PATCH] macos: fix redisplay of GdkPopup This broke recently during the configure cleanups and also needed to have the tail directions fixed again. --- gdk/macos/gdkmacospopupsurface.c | 7 ++++--- gdk/macos/gdkmacossurface.c | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gdk/macos/gdkmacospopupsurface.c b/gdk/macos/gdkmacospopupsurface.c index 477961503f..5a2d7ed481 100644 --- a/gdk/macos/gdkmacospopupsurface.c +++ b/gdk/macos/gdkmacospopupsurface.c @@ -87,6 +87,9 @@ gdk_macos_popup_surface_layout (GdkMacosPopupSurface *self, gdk_surface_get_origin (GDK_SURFACE (self)->parent, &x, &y); + GDK_SURFACE (self)->x = final_rect.x; + GDK_SURFACE (self)->y = final_rect.y; + x += final_rect.x; y += final_rect.y; @@ -391,9 +394,7 @@ _gdk_macos_popup_surface_reposition (GdkMacosPopupSurface *self) { g_return_if_fail (GDK_IS_MACOS_POPUP_SURFACE (self)); - if (self->layout == NULL || - !gdk_surface_get_mapped (GDK_SURFACE (self)) || - GDK_SURFACE (self)->parent == NULL) + if (self->layout == NULL || GDK_SURFACE (self)->parent == NULL) return; gdk_macos_popup_surface_layout (self, diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c index 6eb23f2807..af14681890 100644 --- a/gdk/macos/gdkmacossurface.c +++ b/gdk/macos/gdkmacossurface.c @@ -908,6 +908,7 @@ _gdk_macos_surface_show (GdkMacosSurface *self) if (!was_mapped) { gdk_surface_set_is_mapped (GDK_SURFACE (self), TRUE); + gdk_surface_request_layout (GDK_SURFACE (self)); gdk_surface_thaw_updates (GDK_SURFACE (self)); } }