]> Pileus Git - ~andy/gtk/commitdiff
Avoid loop in paint update cycle
authorAlexander Larsson <alexl@redhat.com>
Tue, 19 Feb 2013 20:03:35 +0000 (21:03 +0100)
committerAlexander Larsson <alexl@redhat.com>
Tue, 19 Feb 2013 20:12:48 +0000 (21:12 +0100)
Commit 1db87c897f930171646351c99af7df09dc7ec949 accidentally removed
a check for !in_paint_idle in maybe_start_idle which causes us
to create a paint loop whenever something requests a phase
inside the paint_idle.

gdk/gdkframeclockidle.c

index 7e1a8c17e642960da11e7eb21bfa77389a96735b..59a18de0647f111ffdea18a31b355b357c9f7548 100644 (file)
@@ -247,7 +247,8 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle)
                                                               (GDestroyNotify) g_object_unref);
         }
 
-      if (priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv))
+      if (!priv->in_paint_idle &&
+         priv->paint_idle_id == 0 && RUN_PAINT_IDLE (priv))
         {
           priv->paint_idle_id = gdk_threads_add_timeout_full (GDK_PRIORITY_REDRAW,
                                                               min_interval,