From c60a4b573432d6f90fa47f0e9c3233454276c008 Mon Sep 17 00:00:00 2001 From: Brandon Lewis Date: Wed, 15 Dec 2010 16:40:59 +0000 Subject: [PATCH] GESSimpleTimelineLayer: ensure the object can be located before "object-added" fires --- ges/ges-simple-timeline-layer.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ges/ges-simple-timeline-layer.c b/ges/ges-simple-timeline-layer.c index 62bf97d..d70348d 100644 --- a/ges/ges-simple-timeline-layer.c +++ b/ges/ges-simple-timeline-layer.c @@ -324,11 +324,16 @@ ges_simple_timeline_layer_add_object (GESSimpleTimelineLayer * layer, priv->adding_object = TRUE; + /* provisionally insert the object */ + priv->objects = g_list_insert (priv->objects, object, position); + res = ges_timeline_layer_add_object ((GESTimelineLayer *) layer, object); /* Add to layer */ if (G_UNLIKELY (!res)) { priv->adding_object = FALSE; + /* we failed to add the object, so remove it from our list */ + priv->objects = g_list_remove (priv->objects, object); return FALSE; } @@ -336,7 +341,6 @@ ges_simple_timeline_layer_add_object (GESSimpleTimelineLayer * layer, GST_DEBUG ("Adding object %p to the list", object); - priv->objects = g_list_insert (priv->objects, object, position); g_signal_connect (G_OBJECT (object), "notify::height", G_CALLBACK (timeline_object_height_changed_cb), layer); -- 2.7.4