From: Benjamin Otte Date: Sat, 22 Apr 2023 14:33:35 +0000 (+0200) Subject: surface: Refactor code X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~382^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=893862a51a5a8734575000f2c66a5556d52a9f83;p=gtk4.git surface: Refactor code Move the early exit conditions to the top and turn them into early exits instead of nesting if statements. --- diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index 385f5e3e91..34052799e8 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -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); }