[Bf-blender-cvs] [185e8183fa3] soc-2019-outliner: Outliner: Support multiple selected objects for parent clear

Nathan Craddock noreply at git.blender.org
Sun Jul 14 00:49:30 CEST 2019


Commit: 185e8183fa3e05e505461e61089ee70603ef6b8d
Author: Nathan Craddock
Date:   Sat Jul 13 16:48:09 2019 -0600
Branches: soc-2019-outliner
https://developer.blender.org/rB185e8183fa3e05e505461e61089ee70603ef6b8d

Outliner: Support multiple selected objects for parent clear

Clear parents for all selected objects on drag and drop

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

M	source/blender/editors/space_outliner/outliner_dragdrop.c

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

diff --git a/source/blender/editors/space_outliner/outliner_dragdrop.c b/source/blender/editors/space_outliner/outliner_dragdrop.c
index 11de977d50f..ca14f9637b8 100644
--- a/source/blender/editors/space_outliner/outliner_dragdrop.c
+++ b/source/blender/editors/space_outliner/outliner_dragdrop.c
@@ -569,13 +569,21 @@ static bool parent_clear_poll(bContext *C,
 static int parent_clear_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
 {
   Main *bmain = CTX_data_main(C);
-  Object *ob = (Object *)WM_drag_ID_from_event(event, ID_OB);
 
-  if (ob == NULL) {
+  if (event->custom != EVT_DATA_DRAGDROP) {
     return OPERATOR_CANCELLED;
   }
 
-  ED_object_parent_clear(ob, 0);
+  ListBase *lb = event->customdata;
+  wmDrag *drag = lb->first;
+
+  for (wmDragID *drag_id = drag->ids.first; drag_id; drag_id = drag_id->next) {
+    if (GS(drag_id->id->name) == ID_OB) {
+      Object *object = (Object *)drag_id->id;
+
+      ED_object_parent_clear(object, 0);
+    }
+  }
 
   DEG_relations_tag_update(bmain);
   WM_event_add_notifier(C, NC_OBJECT | ND_TRANSFORM, NULL);



More information about the Bf-blender-cvs mailing list