From d2b2ac0d510aac3536732361f8719a2833ee7888 Mon Sep 17 00:00:00 2001 From: Brandon Lewis Date: Thu, 23 Sep 2010 14:47:48 +0100 Subject: [PATCH] GESTimeline: remove layers before removing tracks in dispose () --- ges/ges-timeline.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ges/ges-timeline.c b/ges/ges-timeline.c index 4e396468be..d887c33a47 100644 --- a/ges/ges-timeline.c +++ b/ges/ges-timeline.c @@ -104,16 +104,21 @@ ges_timeline_dispose (GObject * object) timeline->discoverer = NULL; } - while (timeline->tracks) { - TrackPrivate *priv = (TrackPrivate *) timeline->tracks->data; - ges_timeline_remove_track (timeline, priv->track); - } - while (timeline->layers) { GESTimelineLayer *layer = (GESTimelineLayer *) timeline->layers->data; ges_timeline_remove_layer (timeline, layer); } + /* FIXME: it should be possible to remove tracks before removing + * layers, but at the moment this creates a problem because the track + * objects aren't notified that their gnlobjects have been destroyed. + */ + + while (timeline->tracks) { + TrackPrivate *priv = (TrackPrivate *) timeline->tracks->data; + ges_timeline_remove_track (timeline, priv->track); + } + G_OBJECT_CLASS (ges_timeline_parent_class)->dispose (object); }