diff options
| -rw-r--r-- | editor/plugins/canvas_item_editor_plugin.cpp | 17 | 
1 files changed, 16 insertions, 1 deletions
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index f16747f929..ba68259599 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -1681,7 +1681,22 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) {  			// Find the item to select  			CanvasItem *canvas_item = NULL;  			Vector<_SelectResult> selection; -			_find_canvas_items_at_pos(click, scene, selection, 1); +			_find_canvas_items_at_pos(click, scene, selection, editor_selection->get_selection().empty() ? 1 : 0); + +			for (int i = 0; i < selection.size(); i++) { +				if (editor_selection->is_selected(selection[i].item)) { +					// Drag the node(s) if requested +					List<CanvasItem *> selection = _get_edited_canvas_items(); + +					drag_type = DRAG_ALL; +					drag_selection = selection; +					drag_from = click; +					_save_canvas_item_state(drag_selection); + +					return true; +				} +			} +  			if (!selection.empty())  				canvas_item = selection[0].item;  |