[ClutterActor] Fix check for zero opacity when being painted from a clone

Clutter short-circuits painting when an actor's opacity is
zero. However if the actor is being painted from a ClutterClone then
it will be painted using the clone's opacity instead so the test was
broken.
This commit is contained in:
Neil Roberts 2009-06-05 16:25:39 +01:00
parent 03471daf50
commit b061a00f4c

View File

@ -2271,7 +2271,9 @@ clutter_actor_paint (ClutterActor *self)
/* It's an important optimization that we consider painting of /* It's an important optimization that we consider painting of
* actors with 0 opacity to be a NOP... */ * actors with 0 opacity to be a NOP... */
if (G_LIKELY (context->pick_mode == CLUTTER_PICK_NONE) && if (G_LIKELY (context->pick_mode == CLUTTER_PICK_NONE) &&
priv->opacity == 0) /* If the actor is being painted from a clone then check the
clone's opacity instead */
(priv->opacity_parent ? priv->opacity_parent->priv : priv)->opacity == 0)
{ {
priv->queued_redraw = FALSE; priv->queued_redraw = FALSE;
return; return;