From 3c30d3bcbd93da4e4cded76c3fc3a30152a43cb4 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Fri, 19 Oct 2018 10:59:53 +0200 Subject: [PATCH] Outliner: only drag element under mouse if it was not selected before Reviewers: brecht Differential Revision: https://developer.blender.org/D3811 --- source/blender/editors/space_outliner/outliner_dragdrop.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_outliner/outliner_dragdrop.c b/source/blender/editors/space_outliner/outliner_dragdrop.c index 978a2cc4af4..293c1d5f29c 100644 --- a/source/blender/editors/space_outliner/outliner_dragdrop.c +++ b/source/blender/editors/space_outliner/outliner_dragdrop.c @@ -875,7 +875,12 @@ static int outliner_item_drag_drop_invoke(bContext *C, wmOperator *UNUSED(op), c if (ELEM(GS(data.drag_id->name), ID_OB, ID_GR)) { /* For collections and objects we cheat and drag all selected. */ - TREESTORE(te)->flag |= TSE_SELECTED; + + /* Only drag element under mouse if it was not selected before. */ + if ((TREESTORE(te)->flag & TSE_SELECTED) == 0) { + outliner_flag_set(&soops->tree, TSE_SELECTED, 0); + TREESTORE(te)->flag |= TSE_SELECTED; + } /* Gather all selected elements. */ struct IDsSelectedData selected = {