[mutter] compositor: Always recurse over surface children actors when picking
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] compositor: Always recurse over surface children actors when picking
- Date: Mon, 24 Nov 2014 13:45:42 +0000 (UTC)
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]