macos: reduce chances for layout cycles
authorChristian Hergert <christian@hergert.me>
Wed, 2 Mar 2022 08:40:21 +0000 (00:40 -0800)
committerChristian Hergert <christian@hergert.me>
Wed, 2 Mar 2022 08:40:21 +0000 (00:40 -0800)
We need to be more careful about when we request a layout because it can
cause us to get into a layout cycle at maximum frame rate.

gdk/macos/gdkmacossurface.c

index cd376f64c301df25ff70a55ec84ebf86f28a06b3..4bf2601f458894eb904eb304bfe6944a8b2b31dc 100644 (file)
@@ -158,9 +158,6 @@ _gdk_macos_surface_reposition_children (GdkMacosSurface *self)
       if (GDK_IS_MACOS_POPUP_SURFACE (child))
         _gdk_macos_popup_surface_reposition (GDK_MACOS_POPUP_SURFACE (child));
     }
-
-  if (GDK_IS_POPUP (self) && self->did_initial_present)
-    gdk_surface_request_layout (GDK_SURFACE (self));
 }
 
 static void
@@ -877,7 +874,6 @@ _gdk_macos_surface_configure (GdkMacosSurface *self)
       g_clear_object (&self->front);
 
       _gdk_surface_update_size (surface);
-      gdk_surface_request_layout (surface);
       gdk_surface_invalidate_rect (surface, NULL);
     }
 
@@ -1136,7 +1132,6 @@ _gdk_macos_surface_monitor_changed (GdkMacosSurface *self)
   gdk_surface_invalidate_rect (GDK_SURFACE (self), NULL);
 
   self->in_change_monitor = FALSE;
-  _gdk_macos_surface_request_frame (self);
 }
 
 GdkMonitor *