[clutter/clutter-1.14] Revert "actor: Skip transitions on invisible actors"
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.14] Revert "actor: Skip transitions on invisible actors"
- Date: Thu, 14 Mar 2013 22:02:24 +0000 (UTC)
commit fefde1b8e364c8269475fd37c3a3b15924cf8d84
Author: Emmanuele Bassi <ebassi gnome org>
Date: Thu Mar 14 19:01:31 2013 -0300
Revert "actor: Skip transitions on invisible actors"
It's far too late in the 1.13 cycle to cause changes in existing code.
This reverts commit 0d65f9461ee2a02cf400e5d8aa40c07eca43cf7c.
https://bugzilla.gnome.org/show_bug.cgi?id=695870
clutter/clutter-actor.c | 52 ++++++++++------------------------------------
1 files changed, 12 insertions(+), 40 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 46001e3..a275da8 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -816,7 +816,6 @@ struct _ClutterActorPrivate
guint needs_compute_expand : 1;
guint needs_x_expand : 1;
guint needs_y_expand : 1;
- guint was_painted : 1;
};
enum
@@ -1488,12 +1487,6 @@ clutter_actor_real_map (ClutterActor *self)
stage = _clutter_actor_get_stage_internal (self);
priv->pick_id = _clutter_stage_acquire_pick_id (CLUTTER_STAGE (stage), self);
- /* reset the was_painted flag here: unmapped actors are not going to
- * be painted in any case, and this allows us to catch the case of
- * cloned actors.
- */
- priv->was_painted = FALSE;
-
CLUTTER_NOTE (ACTOR, "Pick id '%d' for actor '%s'",
priv->pick_id,
_clutter_actor_get_debug_name (self));
@@ -3899,9 +3892,6 @@ clutter_actor_continue_paint (ClutterActor *self)
/* XXX:2.0 - Call the paint() virtual directly */
g_signal_emit (self, actor_signals[PAINT], 0);
-
- /* the actor was painted at least once */
- priv->was_painted = TRUE;
}
else
{
@@ -8621,26 +8611,14 @@ _clutter_actor_queue_redraw_full (ClutterActor *self,
return;
/* we can ignore unmapped actors, unless they have at least one
- * mapped clone or they are inside a cloned branch of the scene
- * graph, as unmapped actors will simply be left unpainted.
- *
+ * mapped clone, as unmapped actors will simply be left unpainted;
* this allows us to ignore redraws queued on leaf nodes when one
* of their parents has been hidden
*/
if (!CLUTTER_ACTOR_IS_MAPPED (self) &&
- self->priv->in_cloned_branch == 0 &&
- !clutter_actor_has_mapped_clones (self))
- {
- CLUTTER_NOTE (PAINT,
- "Skipping queue_redraw('%s'): mapped=%s, "
- "mapped_clones=%s, "
- "in_cloned_branch=%s\n",
- _clutter_actor_get_debug_name (self),
- CLUTTER_ACTOR_IS_MAPPED (self) ? "yes" : "no",
- clutter_actor_has_mapped_clones (self) ? "yes" : "no",
- self->priv->in_cloned_branch != 0 ? "yes" : "no");
- return;
- }
+ !clutter_actor_has_mapped_clones (self) &&
+ self->priv->in_cloned_branch == 0)
+ return;
/* given the check above we could end up queueing a redraw on an
* unmapped actor with mapped clones, so we cannot assume that
@@ -18783,21 +18761,15 @@ _clutter_actor_create_transition (ClutterActor *actor,
goto out;
}
- if (info->cur_state->easing_duration == 0 ||
- !actor->priv->was_painted ||
- (!CLUTTER_ACTOR_IS_MAPPED (actor) &&
- actor->priv->in_cloned_branch == 0 &&
- !clutter_actor_has_mapped_clones (actor)))
+ /* if the current easing state has a duration of 0, then we don't
+ * bother to create the transition, and we just set the final value
+ * directly on the actor; we don't go through the Animatable
+ * interface because we know we got here through an animatable
+ * property.
+ */
+ if (info->cur_state->easing_duration == 0)
{
- /* don't bother creating the transition if one is not necessary
- * because the actor doesn't want one, or if the actor is not
- * visible: we just set the final value directly on the actor.
- *
- * we also don't go through the Animatable interface because we
- * already know we got here through an animatable property.
- */
- CLUTTER_NOTE (ANIMATION, "Easing duration=0 was_painted=%s, immediate set for '%s::%s'",
- actor->priv->was_painted ? "yes" : "no",
+ CLUTTER_NOTE (ANIMATION, "Easing duration=0, immediate set for '%s::%s'",
_clutter_actor_get_debug_name (actor),
pspec->name);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]