From 7e5340261a0c984f64498537c5efb29687a41b5b Mon Sep 17 00:00:00 2001 From: Tomasz Chabora Date: Tue, 19 Nov 2019 16:02:04 +0100 Subject: [PATCH] Cancel drag when selection changes --- editor/plugins/canvas_item_editor_plugin.cpp | 7 +++++++ editor/plugins/canvas_item_editor_plugin.h | 1 + 2 files changed, 8 insertions(+) diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp index fcbd68a60f5..b3415c423e3 100644 --- a/editor/plugins/canvas_item_editor_plugin.cpp +++ b/editor/plugins/canvas_item_editor_plugin.cpp @@ -794,6 +794,7 @@ bool CanvasItemEditor::_select_click_on_item(CanvasItem *item, Point2 p_click_po editor_selection->add_node(item); // Reselect if (Engine::get_singleton()->is_editor_hint()) { + selected_from_canvas = true; editor->call("edit_node", item); } } @@ -3911,6 +3912,11 @@ void CanvasItemEditor::_selection_changed() { } anchors_mode = (nbValidControls == nbAnchorsMode); anchor_mode_button->set_pressed(anchors_mode); + + if (!selected_from_canvas) { + drag_type = DRAG_NONE; + } + selected_from_canvas = false; } void CanvasItemEditor::edit(CanvasItem *p_canvas_item) { @@ -5253,6 +5259,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) { snap_target[0] = SNAP_TARGET_NONE; snap_target[1] = SNAP_TARGET_NONE; + selected_from_canvas = false; anchors_mode = false; skeleton_show_bones = true; diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index 3ba66c00f97..74adb882d13 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -252,6 +252,7 @@ private: Point2 view_offset; Point2 previous_update_view_offset; + bool selected_from_canvas; bool anchors_mode; Point2 grid_offset;