Просмотр исходного кода

In CanvasItemEditor, prioritize selected items

Bernhard Liebl 7 лет назад
Родитель
Сommit
ced694e9cd
1 измененных файлов с 16 добавлено и 1 удалено
  1. 16 1
      editor/plugins/canvas_item_editor_plugin.cpp

+ 16 - 1
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;