actor: Expand is_in_clone_paint() check

The function should return true not only if the actor is being painted
by a ClutterClone, but also if it's inside a sub-graph being painted by
a ClutterClone.

https://bugzilla.gnome.org/show_bug.cgi?id=756371
This commit is contained in:
Emmanuele Bassi 2016-02-23 16:08:52 +00:00
parent 6240b1a228
commit c867e9d941

View File

@ -16376,9 +16376,29 @@ _clutter_actor_set_in_clone_paint (ClutterActor *self,
gboolean
clutter_actor_is_in_clone_paint (ClutterActor *self)
{
ClutterActor *parent;
g_return_val_if_fail (CLUTTER_IS_ACTOR (self), FALSE);
return self->priv->in_clone_paint;
if (self->priv->in_clone_paint)
return TRUE;
if (self->priv->in_cloned_branch == 0)
return FALSE;
parent = self->priv->parent;
while (parent != NULL)
{
if (parent->priv->in_cloned_branch == 0)
break;
if (parent->priv->in_clone_paint)
return TRUE;
parent = parent->priv->parent;
}
return FALSE;
}
static gboolean