diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-12-03 14:43:53 -0500 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2013-12-03 14:49:40 -0500 |
commit | 0924c7d61b4ca1b81a9d95c9b5460a0334852437 (patch) | |
tree | f1919a438a0092540ca1798ba3670b88f1c508c6 | |
parent | 2746608eb22529d5f91d633c483f3e1701e5877e (diff) | |
download | mutter-0924c7d61b4ca1b81a9d95c9b5460a0334852437.tar.gz |
wayland: Use a stage paint callback instead of a signal handler on "paint"
This is much more appropriate...
-rw-r--r-- | src/compositor/compositor.c | 2 | ||||
-rw-r--r-- | src/wayland/meta-wayland-private.h | 1 | ||||
-rw-r--r-- | src/wayland/meta-wayland.c | 8 |
3 files changed, 5 insertions, 6 deletions
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c index 93464e1f1..325a4ecbb 100644 --- a/src/compositor/compositor.c +++ b/src/compositor/compositor.c @@ -637,6 +637,8 @@ after_stage_paint (ClutterStage *stage, for (l = info->windows; l; l = l->next) meta_window_actor_post_paint (l->data); + + meta_wayland_compositor_paint_finished (meta_wayland_compositor_get_default ()); } static void diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h index d13090bb3..e444ae596 100644 --- a/src/wayland/meta-wayland-private.h +++ b/src/wayland/meta-wayland-private.h @@ -109,5 +109,6 @@ void meta_wayland_buffer_reference (MetaWaylandBuff void meta_wayland_compositor_update (MetaWaylandCompositor *compositor, const ClutterEvent *event); +void meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor); #endif /* META_WAYLAND_PRIVATE_H */ diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c index 3d1961a81..f67af7e60 100644 --- a/src/wayland/meta-wayland.c +++ b/src/wayland/meta-wayland.c @@ -500,11 +500,9 @@ const static struct wl_compositor_interface meta_wayland_compositor_interface = meta_wayland_compositor_create_region }; -static void -paint_finished_cb (ClutterActor *self, void *user_data) +void +meta_wayland_compositor_paint_finished (MetaWaylandCompositor *compositor) { - MetaWaylandCompositor *compositor = user_data; - while (!wl_list_empty (&compositor->frame_callbacks)) { MetaWaylandFrameCallback *callback = @@ -711,8 +709,6 @@ meta_wayland_init (void) compositor->outputs = meta_wayland_compositor_update_outputs (compositor, monitors); compositor->stage = meta_wayland_stage_new (); - g_signal_connect_after (compositor->stage, "paint", - G_CALLBACK (paint_finished_cb), compositor); g_signal_connect (compositor->stage, "destroy", G_CALLBACK (stage_destroy_cb), NULL); |