surface: Remove in_update tracking
authorBenjamin Otte <otte@redhat.com>
Sat, 22 Apr 2023 14:24:16 +0000 (16:24 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 22 Apr 2023 14:24:16 +0000 (16:24 +0200)
It's 2023, we use frame clocks now and don't have nested surface drawing
anymore.

gdk/gdksurface.c
gdk/gdksurfaceprivate.h

index 279bafd6ad4c42ff13b71e1f28db1fbf56729fd2..2de27870cc86992db3f0cc92ca023970f4599b0c 100644 (file)
@@ -1338,8 +1338,6 @@ gdk_surface_process_updates_internal (GdkSurface *surface)
   /* Ensure the surface lives while updating it */
   g_object_ref (surface);
 
-  surface->in_update = TRUE;
-
   /* If an update got queued during update processing, we can get a
    * surface in the update queue that has an empty update_area.
    * just ignore it.
@@ -1361,8 +1359,6 @@ gdk_surface_process_updates_internal (GdkSurface *surface)
       cairo_region_destroy (expose_region);
     }
 
-  surface->in_update = FALSE;
-
   g_object_unref (surface);
 }
 
@@ -1433,11 +1429,7 @@ gdk_surface_paint_on_clock (GdkFrameClock *clock,
 
   if (surface->update_area &&
       !surface->update_freeze_count &&
-      !gdk_surface_is_toplevel_frozen (surface) &&
-
-      /* Don't recurse into process_updates_internal, we'll
-       * do the update later when idle instead. */
-      !surface->in_update)
+      !gdk_surface_is_toplevel_frozen (surface))
     {
       surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT;
       gdk_surface_process_updates_internal (surface);
index 8b210439a5398e12d0ffdd7a4934cbf36b59d088..a8587a8442b7bdaceb4f6d8f967d531ab99d0100 100644 (file)
@@ -67,7 +67,6 @@ struct _GdkSurface
 
   guint modal_hint : 1;
   guint destroyed : 2;
-  guint in_update : 1;
   guint frame_clock_events_paused : 1;
   guint autohide : 1;
   guint shortcuts_inhibited : 1;