diff options
author | Luca Rood <dev@lucarood.com> | 2017-06-30 13:32:18 +0300 |
---|---|---|
committer | Luca Rood <dev@lucarood.com> | 2017-06-30 13:32:18 +0300 |
commit | 1b4bd1c84e404261e267b9cba44fcff20914de6c (patch) | |
tree | abfd429e4225f381da0520471195543c56c4e866 /source/blender/editors/space_outliner | |
parent | 1a6ae0c70e24a00dce5a65748c1b4487730fde7d (diff) |
Fix T51118: Outliner crash when unlinking collection
The outliner tree was not being rebuilt after unlinking a collection,
and thus a dangling pointer to the collection was kept in the tree.
Diffstat (limited to 'source/blender/editors/space_outliner')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_collections.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/editors/space_outliner/outliner_collections.c b/source/blender/editors/space_outliner/outliner_collections.c index 315a3af1898..2db87df8809 100644 --- a/source/blender/editors/space_outliner/outliner_collections.c +++ b/source/blender/editors/space_outliner/outliner_collections.c @@ -216,6 +216,7 @@ static int collection_unlink_poll(bContext *C) static int collection_unlink_exec(bContext *C, wmOperator *op) { LayerCollection *lc = outliner_collection_active(C); + SpaceOops *soops = CTX_wm_space_outliner(C); if (lc == NULL) { BKE_report(op->reports, RPT_ERROR, "Active element is not a collection"); @@ -225,6 +226,10 @@ static int collection_unlink_exec(bContext *C, wmOperator *op) SceneLayer *sl = CTX_data_scene_layer(C); BKE_collection_unlink(sl, lc); + if (soops) { + outliner_cleanup_tree(soops); + } + DEG_relations_tag_update(CTX_data_main(C)); /* TODO(sergey): Use proper flag for tagging here. */ |