[clutter/clutter-1.10] actor: Check easing duration when updating in-flight transitions
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/clutter-1.10] actor: Check easing duration when updating in-flight transitions
- Date: Wed, 11 Apr 2012 11:53:20 +0000 (UTC)
commit b17d56a35d47a2f66a89b133edb31328bd28883e
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Wed Mar 28 12:43:57 2012 +0100
actor: Check easing duration when updating in-flight transitions
If we update a transition that is currently playing, we need to check
the current easing state, and look at the eventual duration, in case
the user wants to cancel the transition.
clutter/clutter-actor.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 78edfba..bac7acb 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -16999,6 +16999,7 @@ _clutter_actor_update_transition (ClutterActor *actor,
...)
{
TransitionClosure *clos;
+ ClutterTimeline *timeline;
ClutterInterval *interval;
const ClutterAnimationInfo *info;
va_list var_args;
@@ -17016,6 +17017,8 @@ _clutter_actor_update_transition (ClutterActor *actor,
if (clos == NULL)
return;
+ timeline = CLUTTER_TIMELINE (clos->transition);
+
va_start (var_args, pspec);
ptype = G_PARAM_SPEC_VALUE_TYPE (pspec);
@@ -17037,7 +17040,17 @@ _clutter_actor_update_transition (ClutterActor *actor,
clutter_interval_set_initial_value (interval, &initial);
clutter_interval_set_final_value (interval, &final);
- clutter_timeline_rewind (CLUTTER_TIMELINE (clos->transition));
+ /* if we're updating with an easing duration of zero milliseconds,
+ * we just jump the timeline to the end and let it run its course
+ */
+ if (info->cur_state == NULL || info->cur_state->easing_duration == 0)
+ {
+ guint duration = clutter_timeline_get_duration (timeline);
+
+ clutter_timeline_advance (timeline, duration);
+ }
+ else
+ clutter_timeline_rewind (timeline);
out:
g_value_unset (&initial);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]