diff options
Diffstat (limited to 'clutter/clutter/clutter-actor.c')
-rw-r--r-- | clutter/clutter/clutter-actor.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index 79f4565ed..604438269 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -3931,6 +3931,7 @@ clutter_actor_pick (ClutterActor *actor, { ClutterActorPrivate *priv; ClutterActorBox clip; + gboolean transform_pushed = FALSE; gboolean clip_set = FALSE; if (CLUTTER_ACTOR_IN_DESTRUCTION (actor)) @@ -3953,7 +3954,11 @@ clutter_actor_pick (ClutterActor *actor, graphene_matrix_init_identity (&matrix); _clutter_actor_apply_modelview_transform (actor, &matrix); - clutter_pick_context_push_transform (pick_context, &matrix); + if (!graphene_matrix_is_identity (&matrix)) + { + clutter_pick_context_push_transform (pick_context, &matrix); + transform_pushed = TRUE; + } } if (priv->has_clip) @@ -3988,7 +3993,7 @@ clutter_actor_pick (ClutterActor *actor, if (clip_set) clutter_pick_context_pop_clip (pick_context); - if (priv->enable_model_view_transform) + if (transform_pushed) clutter_pick_context_pop_transform (pick_context); /* paint sequence complete */ |