[gtk/wip/chergert/macos-fix-popover-tails] macos: fix positioning of popover tails




commit 36bdcfaccb6de70a753e63d502a9654315d6ec47
Author: Christian Hergert <christian hergert me>
Date:   Thu Feb 24 16:29:53 2022 -0800

    macos: fix positioning of popover tails
    
    This broke with the previous fixes for initial window positioning. We need
    the initial positioning so that tails will be displayed correctly when the
    popover surface is displayed.

 gdk/macos/gdkmacossurface.c | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)
---
diff --git a/gdk/macos/gdkmacossurface.c b/gdk/macos/gdkmacossurface.c
index 0f9fd4d833..5998c4162f 100644
--- a/gdk/macos/gdkmacossurface.c
+++ b/gdk/macos/gdkmacossurface.c
@@ -69,10 +69,8 @@ _gdk_macos_surface_reposition_children (GdkMacosSurface *self)
 {
   g_assert (GDK_IS_MACOS_SURFACE (self));
 
-  if (GDK_SURFACE_DESTROYED (self))
-    return;
 
-  if (!gdk_surface_get_mapped (GDK_SURFACE (self)))
+  if (GDK_SURFACE_DESTROYED (self))
     return;
 
   for (const GList *iter = GDK_SURFACE (self)->children;
@@ -767,18 +765,15 @@ _gdk_macos_surface_configure (GdkMacosSurface *self)
                                           content_rect.origin.y + content_rect.size.height,
                                           &self->root_x, &self->root_y);
 
-  if (self->did_initial_present)
+  if (surface->parent != NULL)
     {
-      if (surface->parent != NULL)
-        {
-          surface->x = self->root_x - GDK_MACOS_SURFACE (surface->parent)->root_x;
-          surface->y = self->root_y - GDK_MACOS_SURFACE (surface->parent)->root_y;
-        }
-      else
-        {
-          surface->x = self->root_x;
-          surface->y = self->root_y;
-        }
+      surface->x = self->root_x - GDK_MACOS_SURFACE (surface->parent)->root_x;
+      surface->y = self->root_y - GDK_MACOS_SURFACE (surface->parent)->root_y;
+    }
+  else
+    {
+      surface->x = self->root_x;
+      surface->y = self->root_y;
     }
 
   if (surface->width != content_rect.size.width ||


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]