From e96eb0e82e3f1bf1cba25bf18fbf3a219558b7b8 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sun, 23 Nov 2014 13:32:08 +0100 Subject: [PATCH] compositor: Always recurse over surface children actors when picking The parent pick() implementation in ClutterActor only recurses if the vfunc is untouched, which means it's up to the MetaWaylandSurface implementation to actually recurse, just the same as if an input mask applied. https://bugzilla.gnome.org/show_bug.cgi?id=738890 --- src/compositor/meta-surface-actor.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c index b51a5a77c..2e50a0e3f 100644 --- a/src/compositor/meta-surface-actor.c +++ b/src/compositor/meta-surface-actor.c @@ -49,6 +49,8 @@ meta_surface_actor_pick (ClutterActor *actor, { MetaSurfaceActor *self = META_SURFACE_ACTOR (actor); MetaSurfaceActorPrivate *priv = self->priv; + ClutterActorIter iter; + ClutterActor *child; if (!clutter_actor_should_pick_paint (actor)) return; @@ -65,8 +67,6 @@ meta_surface_actor_pick (ClutterActor *actor, CoglContext *ctx; CoglFramebuffer *fb; CoglColor cogl_color; - ClutterActorIter iter; - ClutterActor *child; n_rects = cairo_region_num_rectangles (priv->input_region); rectangles = g_alloca (sizeof (float) * 4 * n_rects); @@ -93,12 +93,12 @@ meta_surface_actor_pick (ClutterActor *actor, cogl_pipeline_set_color (pipeline, &cogl_color); cogl_framebuffer_draw_rectangles (fb, pipeline, rectangles, n_rects); cogl_object_unref (pipeline); - - clutter_actor_iter_init (&iter, actor); - - while (clutter_actor_iter_next (&iter, &child)) - clutter_actor_paint (child); } + + clutter_actor_iter_init (&iter, actor); + + while (clutter_actor_iter_next (&iter, &child)) + clutter_actor_paint (child); } static void