Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Rood <dev@lucarood.com>2017-06-30 13:32:18 +0300
committerLuca Rood <dev@lucarood.com>2017-06-30 13:32:18 +0300
commit1b4bd1c84e404261e267b9cba44fcff20914de6c (patch)
treeabfd429e4225f381da0520471195543c56c4e866 /source/blender/editors/space_outliner/outliner_collections.c
parent1a6ae0c70e24a00dce5a65748c1b4487730fde7d (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/outliner_collections.c')
-rw-r--r--source/blender/editors/space_outliner/outliner_collections.c5
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. */