macos: be more defensive about freezing updates
authorChristian Hergert <christian@hergert.me>
Sun, 30 Jan 2022 01:07:02 +0000 (17:07 -0800)
committerChristian Hergert <christian@hergert.me>
Fri, 4 Feb 2022 03:26:16 +0000 (19:26 -0800)
We only need to freeze the updates if we weren't in the queue already.
That should be the case, but just better to be defensive here.

gdk/macos/gdkmacosdisplay.c
gdk/macos/gdkmacossurface.c

index 9507d65c883c3d4531fbbe8c0f4ddaad0479e2e3..5866e03b5e7b450609d9af77008563c1ba9f8b67 100644 (file)
@@ -993,6 +993,8 @@ _gdk_macos_display_add_frame_callback (GdkMacosDisplay *self,
        */
       g_queue_push_head_link (&self->awaiting_frames, &surface->frame);
 
+      gdk_surface_freeze_updates (GDK_SURFACE (surface));
+
       if (self->awaiting_frames.length == 1)
         gdk_display_link_source_unpause ((GdkDisplayLinkSource *)self->frame_source);
     }
index 95bb99097187be31542f252d612b54bfbee6bbcc..a6a354cab71c69a4894950004cfd43bc57b864d4 100644 (file)
@@ -197,8 +197,6 @@ gdk_macos_surface_end_frame (GdkMacosSurface *self)
     self->pending_frame_counter = timings->frame_counter;
 
   _gdk_macos_display_add_frame_callback (GDK_MACOS_DISPLAY (display), self);
-
-  gdk_surface_freeze_updates (GDK_SURFACE (self));
 }
 
 static void