2007-11-14 Emmanuele Bassi <ebassi@openedhand.com>

* clutter/clutter-clone-texture.c (set_parent_texture): Hide the
	clone texture only if it was visible, and show it again if we
	are adding a visible texture.

	* tests/test-script.json: Test the CloneTexture actor.
This commit is contained in:
Emmanuele Bassi 2007-11-14 13:36:31 +00:00
parent 4de1adb04a
commit baad0f5b0d
3 changed files with 30 additions and 11 deletions

View File

@ -1,3 +1,11 @@
2007-11-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-clone-texture.c (set_parent_texture): Hide the
clone texture only if it was visible, and show it again if we
are adding a visible texture.
* tests/test-script.json: Test the CloneTexture actor.
2007-11-14 Emmanuele Bassi <ebassi@openedhand.com> 2007-11-14 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Rename clutter_actor_get_id() to * clutter/clutter-actor.[ch]: Rename clutter_actor_get_id() to

View File

@ -236,14 +236,16 @@ set_parent_texture (ClutterCloneTexture *ctexture,
{ {
ClutterCloneTexturePrivate *priv = ctexture->priv; ClutterCloneTexturePrivate *priv = ctexture->priv;
ClutterActor *actor = CLUTTER_ACTOR (ctexture); ClutterActor *actor = CLUTTER_ACTOR (ctexture);
gboolean was_visible = CLUTTER_ACTOR_IS_VISIBLE (ctexture);
if (priv->parent_texture) if (priv->parent_texture)
{ {
g_object_unref (priv->parent_texture); g_object_unref (priv->parent_texture);
priv->parent_texture = NULL; priv->parent_texture = NULL;
}
if (was_visible)
clutter_actor_hide (actor); clutter_actor_hide (actor);
}
if (texture) if (texture)
{ {
@ -256,10 +258,13 @@ set_parent_texture (ClutterCloneTexture *ctexture,
clutter_actor_set_size (actor, width, height); clutter_actor_set_size (actor, width, height);
/* queue a redraw if the cloned texture is already visible */ /* queue a redraw if the cloned texture is already visible */
if (CLUTTER_ACTOR_IS_VISIBLE (CLUTTER_ACTOR (priv->parent_texture)) && if (CLUTTER_ACTOR_IS_VISIBLE (priv->parent_texture) &&
CLUTTER_ACTOR_IS_VISIBLE (actor)) was_visible)
{
clutter_actor_show (actor);
clutter_actor_queue_redraw (actor); clutter_actor_queue_redraw (actor);
} }
}
} }

View File

@ -10,13 +10,10 @@
"id" : "red-button", "id" : "red-button",
"type" : "ClutterRectangle", "type" : "ClutterRectangle",
"color" : "#ff0000ff", "color" : "#ff0000ff",
"x" : 50, "x" : 50, "y" : 50, "width" : 100, "height" : 100,
"y" : 50,
"width" : 100,
"height" : 100,
"visible" : true, "visible" : true,
"reactive" : true, "reactive" : true,
"behaviours" : [ "fade-behaviour", "path-behaviour" ] "behaviours" : [ "fade-behaviour", "path-behaviour" ],
}, },
{ {
"id" : "green-button", "id" : "green-button",
@ -36,11 +33,20 @@
"type" : "ClutterTexture", "type" : "ClutterTexture",
"pixbuf" : "redhand.png", "pixbuf" : "redhand.png",
"x" : 50, "x" : 50,
"y" : 50, "y" : 150,
"opacity" : 100, "opacity" : 100,
"visible" : true, "visible" : true,
"behaviours" : [ "rotate-behaviour", "fade-behaviour" ] "behaviours" : [ "rotate-behaviour", "fade-behaviour" ]
}, },
{
"id" : "red-hand-clone",
"type" : "ClutterCloneTexture",
"parent-texture" : "red-hand",
"x" : 250,
"y" : 150,
"opacity" : 100,
"visible" : true
},
{ {
"id" : "label", "id" : "label",
"type" : "ClutterLabel", "type" : "ClutterLabel",