ges: Fix the TimelineObject::effect-added signal emission timing
authorThibault Saunier <thibault.saunier@collabora.com>
Sun, 18 Dec 2011 00:49:24 +0000 (01:49 +0100)
committerThibault Saunier <thibault.saunier@collabora.com>
Wed, 11 Jan 2012 14:56:16 +0000 (11:56 -0300)
We were emitting it before it gets added to the track_object list,
so the list we were getting with get_top_effects was containing
a TrackObject that wasen't a TrackEffect

+ A bit of refactoring

ges/ges-timeline-object.c

index fbbaf05d96acf90fd2aa969d37919a868a042c0f..dceaadc9aabebcf7136898c8dfe978abe753394b 100644 (file)
@@ -547,10 +547,6 @@ ges_timeline_object_add_track_object (GESTimelineObject * object, GESTrackObject
     }
 
     priv->nb_effects++;
-
-    /* emit 'effect-added' */
-    g_signal_emit (object, ges_timeline_object_signals[EFFECT_ADDED], 0,
-        GES_TRACK_EFFECT (trobj));
   }
 
   object->priv->trackobjects =
@@ -591,7 +587,12 @@ ges_timeline_object_add_track_object (GESTimelineObject * object, GESTrackObject
   if (!GES_IS_TRACK_PARSE_LAUNCH_EFFECT (trobj)) {
     g_signal_emit (object, ges_timeline_object_signals[TRACK_OBJECT_ADDED], 0,
         GES_TRACK_OBJECT (trobj));
+  } else {
+    /* emit 'effect-added' */
+    g_signal_emit (object, ges_timeline_object_signals[EFFECT_ADDED], 0,
+        GES_TRACK_EFFECT (trobj));
   }
+
   return TRUE;
 }
 
@@ -1165,12 +1166,13 @@ ges_timeline_object_get_top_effects (GESTimelineObject * object)
 
   g_return_val_if_fail (GES_IS_TIMELINE_OBJECT (object), NULL);
 
+  GST_DEBUG_OBJECT (object, "Getting the %i top effects",
+      object->priv->nb_effects);
   ret = NULL;
 
   for (tmp = object->priv->trackobjects, i = 0; i < object->priv->nb_effects;
       tmp = tmp->next, i++) {
-    ret = g_list_append (ret, tmp->data);
-    g_object_ref (tmp->data);
+    ret = g_list_append (ret, g_object_ref (tmp->data));
   }
 
   return ret;