[mutter] compositor: Always recurse over surface children actors when picking



commit e96eb0e82e3f1bf1cba25bf18fbf3a219558b7b8
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Nov 23 13:32:08 2014 +0100

    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 |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index b51a5a7..2e50a0e 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);
+  clutter_actor_iter_init (&iter, actor);
 
-      while (clutter_actor_iter_next (&iter, &child))
-        clutter_actor_paint (child);
-    }
+  while (clutter_actor_iter_next (&iter, &child))
+    clutter_actor_paint (child);
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]