timeline: No autotrans between elements in same toplevel container
authorThibault Saunier <thibault.saunier@collabora.com>
Fri, 30 Aug 2013 22:45:31 +0000 (18:45 -0400)
committerThibault Saunier <thibault.saunier@collabora.com>
Fri, 30 Aug 2013 22:47:24 +0000 (18:47 -0400)
This makes no sense, we ended up creating/removing tons of transition
while moving groups

ges/ges-timeline.c

index c528775..c4954e4 100644 (file)
@@ -834,6 +834,8 @@ _create_transitions_on_layer (GESTimeline * timeline, GESLayer * layer,
     guint *start_or_end = g_sequence_get (iter);
     GESTrackElement *next = g_hash_table_lookup (timeline->priv->by_object,
         start_or_end);
+    GESTimelineElement *toplevel =
+        ges_timeline_element_get_toplevel_parent (GES_TIMELINE_ELEMENT (next));
 
     /* Only object that are in that layer and track */
     if (_ges_track_element_get_layer_priority (next) != layer_prio ||
@@ -860,7 +862,9 @@ _create_transitions_on_layer (GESTimeline * timeline, GESLayer * layer,
 
       GESTrackElement *prev = tmp->data;
 
-      if (ctrack != ges_track_element_get_track (prev))
+      if (ctrack != ges_track_element_get_track (prev) ||
+          ges_timeline_element_get_toplevel_parent (GES_TIMELINE_ELEMENT (prev))
+          == toplevel)
         continue;
 
       transition_duration = (_START (prev) + _DURATION (prev)) - _START (next);