diff options
author | Adel Gadllah <adel.gadllah@gmail.com> | 2013-03-02 18:08:46 +0100 |
---|---|---|
committer | Adel Gadllah <adel.gadllah@gmail.com> | 2013-03-02 18:24:31 +0100 |
commit | 436d3ff8a9f8c415728eca6a7afba30cc5b2ec32 (patch) | |
tree | 95a632db2f37d881688c52a4c8e663a4a89bd971 /src | |
parent | e4269002ce18ea5262db28f983ccdd21039ca7fc (diff) | |
download | mutter-436d3ff8a9f8c415728eca6a7afba30cc5b2ec32.tar.gz |
compositor: Make sure we always call the post_paint handlers
Commit 4f2bb583bf8c7f started to use a clutter_threads_add_repaint_func_full
callback instead of connecting to the stage's paint signal.
The callback has to return TRUE if it wants to be called again, so fix that
as we want to call it for every frame (otherwise apps supporting the WM SYNC
protocol will stop drawing).
https://bugzilla.gnome.org/show_bug.cgi?id=695006
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor/compositor.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c index 06ae208c6..9771b1cf5 100644 --- a/src/compositor/compositor.c +++ b/src/compositor/compositor.c @@ -452,7 +452,7 @@ meta_check_end_modal (MetaScreen *screen) } } -static void +static gboolean after_stage_paint (gpointer data) { MetaCompScreen *info = (MetaCompScreen*) data; @@ -460,6 +460,8 @@ after_stage_paint (gpointer data) for (l = info->windows; l; l = l->next) meta_window_actor_post_paint (l->data); + + return TRUE; } void @@ -533,7 +535,7 @@ meta_compositor_manage_screen (MetaCompositor *compositor, info->stage = clutter_stage_new (); clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT, - (GSourceFunc) after_stage_paint, + after_stage_paint, info, NULL); clutter_stage_set_sync_delay (CLUTTER_STAGE (info->stage), META_SYNC_DELAY); |