[clutter/wip/apocalypses/apocalypse-6] transition: Check the repeat count to remove on complete
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/wip/apocalypses/apocalypse-6] transition: Check the repeat count to remove on complete
- Date: Thu, 15 Mar 2012 13:55:08 +0000 (UTC)
commit 9d8bd6cea45e9200f4fbde397b2a353dacc07f5c
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Thu Mar 15 13:52:09 2012 +0000
transition: Check the repeat count to remove on complete
We can now ask the timeline for the current repeat, and if it's the last
one, then we can safely detach the transition from the animatable
instance.
clutter/clutter-transition.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
---
diff --git a/clutter/clutter-transition.c b/clutter/clutter-transition.c
index e2710c2..70d9c51 100644
--- a/clutter/clutter-transition.c
+++ b/clutter/clutter-transition.c
@@ -126,12 +126,19 @@ clutter_transition_completed (ClutterTimeline *timeline)
{
ClutterTransitionPrivate *priv = CLUTTER_TRANSITION (timeline)->priv;
- if (priv->remove_on_complete &&
- clutter_timeline_get_repeat_count (timeline) != 0)
+ if (priv->remove_on_complete)
{
- clutter_transition_detach (CLUTTER_TRANSITION (timeline),
- priv->animatable);
- g_object_unref (timeline);
+ int n_repeats, cur_repeat;
+
+ n_repeats = clutter_timeline_get_repeat_count (timeline);
+ cur_repeat = clutter_timeline_get_current_repeat (timeline);
+
+ if (n_repeats == 0 || cur_repeat == n_repeats)
+ {
+ clutter_transition_detach (CLUTTER_TRANSITION (timeline),
+ priv->animatable);
+ g_object_unref (timeline);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]