summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdel Gadllah <adel.gadllah@gmail.com>2013-03-02 18:08:46 +0100
committerAdel Gadllah <adel.gadllah@gmail.com>2013-03-02 18:24:31 +0100
commit436d3ff8a9f8c415728eca6a7afba30cc5b2ec32 (patch)
tree95a632db2f37d881688c52a4c8e663a4a89bd971 /src
parente4269002ce18ea5262db28f983ccdd21039ca7fc (diff)
downloadmutter-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.c6
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);