[Bf-blender-cvs] [5aa9a4f46ab] soc-2020-outliner: Outliner: Fix bases out of sync on object drop

Nathan Craddock noreply at git.blender.org
Wed Jul 15 03:48:25 CEST 2020


Commit: 5aa9a4f46ab578e3a0dd1f00b195a1db08a403c3
Author: Nathan Craddock
Date:   Tue Jul 14 19:48:02 2020 -0600
Branches: soc-2020-outliner
https://developer.blender.org/rB5aa9a4f46ab578e3a0dd1f00b195a1db08a403c3

Outliner: Fix bases out of sync on object drop

===================================================================

M	source/blender/blenkernel/BKE_collection.h
M	source/blender/blenkernel/intern/collection.c
M	source/blender/editors/space_outliner/outliner_dragdrop.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_collection.h b/source/blender/blenkernel/BKE_collection.h
index bdb9ca7afa7..29d8a089fda 100644
--- a/source/blender/blenkernel/BKE_collection.h
+++ b/source/blender/blenkernel/BKE_collection.h
@@ -97,7 +97,8 @@ void BKE_collection_object_move(struct Main *bmain,
                                 struct Collection *collection_dst,
                                 struct Collection *collection_src,
                                 struct Object *ob);
-void BKE_collection_object_move_after(struct Collection *collection,
+void BKE_collection_object_move_after(struct Main *bmain,
+                                      struct Collection *collection,
                                       struct Object *ob_relative,
                                       struct Object *ob);
 
diff --git a/source/blender/blenkernel/intern/collection.c b/source/blender/blenkernel/intern/collection.c
index 22c254684bb..5e2020d174b 100644
--- a/source/blender/blenkernel/intern/collection.c
+++ b/source/blender/blenkernel/intern/collection.c
@@ -1089,7 +1089,10 @@ void BKE_collection_object_move(
  *
  * For outliner drag & drop.
  */
-void BKE_collection_object_move_after(Collection *collection, Object *ob_relative, Object *ob)
+void BKE_collection_object_move_after(Main *bmain,
+                                      Collection *collection,
+                                      Object *ob_relative,
+                                      Object *ob)
 {
   if (ELEM(NULL, collection, ob_relative, ob)) {
     return;
@@ -1109,6 +1112,8 @@ void BKE_collection_object_move_after(Collection *collection, Object *ob_relativ
   int index_from = BLI_findindex(&collection->gobject, object);
 
   BLI_listbase_move_index(&collection->gobject, index_from, index_to);
+
+  BKE_main_collection_sync(bmain);
 }
 
 /** \} */
diff --git a/source/blender/editors/space_outliner/outliner_dragdrop.c b/source/blender/editors/space_outliner/outliner_dragdrop.c
index f7b953eda05..f22c4904581 100644
--- a/source/blender/editors/space_outliner/outliner_dragdrop.c
+++ b/source/blender/editors/space_outliner/outliner_dragdrop.c
@@ -445,7 +445,7 @@ static void parent_drop_move_objects(bContext *C, wmDragID *drag, TreeElement *t
 
       Collection *from = collection_parent_from_ID(drag_id->from_parent);
       BKE_collection_object_move(bmain, scene, collection_to, from, object);
-      BKE_collection_object_move_after(collection_to, ob_drop, object);
+      BKE_collection_object_move_after(bmain, collection_to, ob_drop, object);
     }
   }



More information about the Bf-blender-cvs mailing list