container: Let subclass know adding child was interrupted

When the `child-added` signal emission was called, the
`GESContainer->child_added` vmethod was called (the signal is
`G_SIGNAL_RUN_FIRST`) so we need to call `GESContainer->child_removed`
ourself so subclasses know they do not control the child anymore.
This commit is contained in:
Thibault Saunier 2020-03-18 11:12:55 -03:00
parent eb8e429c80
commit 10590e25f0

View file

@ -904,7 +904,13 @@ ges_container_remove (GESContainer * container, GESTimelineElement * child)
g_signal_emit (container, ges_container_signals[CHILD_REMOVED_SIGNAL], 0,
child);
} else {
GST_INFO_OBJECT (container, "Not emitting 'child-removed' signal as child"
GESContainerClass *klass = GES_CONTAINER_GET_CLASS (container);
if (klass->child_removed)
klass->child_removed (container, child);
GST_INFO_OBJECT (container,
"Not emitting 'child-removed' signal as child"
" removal happend during 'child-added' signal emission");
}
gst_object_unref (child);