diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2012-09-26 15:44:30 -0400 |
---|---|---|
committer | Owen W. Taylor <otaylor@fishsoup.net> | 2013-02-14 17:19:48 -0500 |
commit | 344a69880a73971b9d8839e5e19f693c0cb10d90 (patch) | |
tree | fb8d6afce12fbd06175d578e0c9439a873b78e70 /gdk/gdkframeclockidle.c | |
parent | 7dfa41218823d197cf21f74f37036cc66480d455 (diff) | |
download | gtk+-344a69880a73971b9d8839e5e19f693c0cb10d90.tar.gz |
Add an UPDATE phase and GdkFrameClockTarget, use for GtkStyleContext
Switch GtkStyleContext to using GdkFrameClock. To do this, add a new
UPDATE phase to GdkFrameClock.
Add a GdkFrameClockTarget interface with a single set_clock() method,
and use this to deal with the fact that GtkWidget only has a frame
clock when realized.
https://bugzilla.gnome.org/show_bug.cgi?id=685460
Diffstat (limited to 'gdk/gdkframeclockidle.c')
-rw-r--r-- | gdk/gdkframeclockidle.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index a0b82f08e6..bf68fd1b64 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -189,7 +189,16 @@ gdk_frame_clock_paint_idle (void *data) * they don't get repeated if you freeze/thaw while * in them. */ g_signal_emit_by_name (G_OBJECT (clock), "before-paint"); - priv->phase = GDK_FRAME_CLOCK_PHASE_LAYOUT; + priv->phase = GDK_FRAME_CLOCK_PHASE_UPDATE; + } + case GDK_FRAME_CLOCK_PHASE_UPDATE: + if (priv->freeze_count == 0) + { + if (priv->requested & GDK_FRAME_CLOCK_PHASE_UPDATE) + { + priv->requested &= ~GDK_FRAME_CLOCK_PHASE_UPDATE; + g_signal_emit_by_name (G_OBJECT (clock), "update"); + } } case GDK_FRAME_CLOCK_PHASE_LAYOUT: if (priv->freeze_count == 0) |