surface: Refactor code
authorBenjamin Otte <otte@redhat.com>
Sat, 22 Apr 2023 14:33:35 +0000 (16:33 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 22 Apr 2023 14:33:35 +0000 (16:33 +0200)
Move the early exit conditions to the top and turn them into early exits
instead of nesting if statements.

gdk/gdksurface.c

index 385f5e3e910e6a29f91603624dbfffdb25392c7b..34052799e8c8dd758f3c9049b1f4b35f6b6d1b53 100644 (file)
@@ -1355,46 +1355,36 @@ gdk_surface_paint_on_clock (GdkFrameClock *clock,
                             void          *data)
 {
   GdkSurface *surface = GDK_SURFACE (data);
+  cairo_region_t *expose_region;
 
   g_return_if_fail (GDK_IS_SURFACE (surface));
 
-  if (GDK_SURFACE_DESTROYED (surface))
+  if (GDK_SURFACE_DESTROYED (surface) ||
+      !surface->update_area ||
+      surface->update_freeze_count ||
+      gdk_surface_is_toplevel_frozen (surface))
     return;
 
   g_object_ref (surface);
 
-  if (surface->update_area &&
-      !surface->update_freeze_count &&
-      !gdk_surface_is_toplevel_frozen (surface))
-    {
-      surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT;
+  surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT;
 
-      /* Ensure the surface lives while updating it */
-      g_object_ref (surface);
-
-      /* 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.
-       */
-      if (surface->update_area)
-        {
-          cairo_region_t *expose_region;
+  /* Ensure the surface lives while updating it */
+  g_object_ref (surface);
 
-          expose_region = surface->update_area;
-          surface->update_area = NULL;
+  expose_region = surface->update_area;
+  surface->update_area = NULL;
 
-          if (GDK_SURFACE_IS_MAPPED (surface))
-            {
-              gboolean handled;
+  if (GDK_SURFACE_IS_MAPPED (surface))
+    {
+      gboolean handled;
 
-              g_signal_emit (surface, signals[RENDER], 0, expose_region, &handled);
-            }
+      g_signal_emit (surface, signals[RENDER], 0, expose_region, &handled);
+    }
 
-          cairo_region_destroy (expose_region);
-        }
+  cairo_region_destroy (expose_region);
 
-      g_object_unref (surface);
-    }
+  g_object_unref (surface);
 
   g_object_unref (surface);
 }