keyframe-transition: Create a new interval if necessary
authorBastian Winkler <buz@netbuz.org>
Mon, 14 May 2012 14:32:53 +0000 (16:32 +0200)
committerBastian Winkler <buz@netbuz.org>
Tue, 15 May 2012 15:41:24 +0000 (17:41 +0200)
When setting up the transition manually by calling

  clutter_keyframe_transition_set_key_frame (transition, n, keys);
  clutter_keyframe_transition_set_values (transition, n, values);
  clutter_keyframe_transition_set_modes (transition, n, modes);

the frame doesn't have a valid interval when calling set_keys(), so we
need to check its existence and create it if necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=676031

clutter/clutter-keyframe-transition.c

index 5528d7f..007be9c 100644 (file)
@@ -493,7 +493,12 @@ clutter_keyframe_transition_set_values (ClutterKeyframeTransition *transition,
     {
       KeyFrame *frame = &g_array_index (priv->frames, KeyFrame, i);
 
-      clutter_interval_set_final_value (frame->interval, &values[i]);
+      if (frame->interval)
+        clutter_interval_set_final_value (frame->interval, &values[i]);
+      else
+        frame->interval =
+          clutter_interval_new_with_values (G_VALUE_TYPE (&values[i]), NULL,
+                                            &values[i]);
     }
 }