diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-12-04 08:58:07 +1100 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-12-04 08:58:07 +1100 |
commit | aa7984d147b5ef09ad287a2a2fb034050a5d8e7c (patch) | |
tree | 095d0963cf4c0d07998200e9708b828f1244248d | |
parent | 74bc25e9961347b1fce527ae38ac9e73670b6ee7 (diff) | |
download | libtwin-aa7984d147b5ef09ad287a2a2fb034050a5d8e7c.tar.gz |
Stop widgets update flicker with immediate refresh
This patch disables refresh around widget refresh operations
(from the toplevel object) so that individual widgets get
refreshed at once and thus don't flicker. This fixes the
flicker with the demos
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | twin_toplevel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/twin_toplevel.c b/twin_toplevel.c index 40e4931..a8fd246 100644 --- a/twin_toplevel.c +++ b/twin_toplevel.c @@ -57,8 +57,10 @@ _twin_toplevel_draw (twin_window_t *window) twin_toplevel_t *toplevel = window->client_data; twin_event_t event; + twin_screen_disable_update(window->screen); event.kind = TwinEventPaint; (*toplevel->box.widget.dispatch) (&toplevel->box.widget, &event); + twin_screen_enable_update(window->screen); } static void @@ -122,9 +124,11 @@ _twin_toplevel_paint (void *closure) { twin_toplevel_t *toplevel = closure; twin_event_t ev; - + + twin_screen_disable_update(toplevel->box.widget.window->screen); ev.kind = TwinEventPaint; (*toplevel->box.widget.dispatch) (&toplevel->box.widget, &ev); + twin_screen_enable_update(toplevel->box.widget.window->screen); return TWIN_FALSE; } |