diff options
Diffstat (limited to 'editor/plugins/cast_2d_editor_plugin.cpp')
-rw-r--r-- | editor/plugins/cast_2d_editor_plugin.cpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/editor/plugins/cast_2d_editor_plugin.cpp b/editor/plugins/cast_2d_editor_plugin.cpp index a6457e38a7..a765e4245c 100644 --- a/editor/plugins/cast_2d_editor_plugin.cpp +++ b/editor/plugins/cast_2d_editor_plugin.cpp @@ -65,10 +65,13 @@ bool Cast2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_event) { if (mb.is_valid() && mb->get_button_index() == MouseButton::LEFT) { Vector2 target_position = node->get("target_position"); + Vector2 gpoint = mb->get_position(); + if (mb->is_pressed()) { - if (xform.xform(target_position).distance_to(mb->get_position()) < 8) { + if (xform.xform(target_position).distance_to(gpoint) < 8) { pressed = true; original_target_position = target_position; + original_mouse_pos = gpoint; return true; } else { @@ -77,16 +80,17 @@ bool Cast2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_event) { return false; } } else if (pressed) { - EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); - undo_redo->create_action(TTR("Set Target Position")); - undo_redo->add_do_property(node, "target_position", target_position); - undo_redo->add_do_method(canvas_item_editor, "update_viewport"); - undo_redo->add_undo_property(node, "target_position", original_target_position); - undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); - undo_redo->commit_action(); + if (original_mouse_pos != gpoint) { + EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); + undo_redo->create_action(TTR("Set Target Position")); + undo_redo->add_do_property(node, "target_position", target_position); + undo_redo->add_do_method(canvas_item_editor, "update_viewport"); + undo_redo->add_undo_property(node, "target_position", original_target_position); + undo_redo->add_undo_method(canvas_item_editor, "update_viewport"); + undo_redo->commit_action(); + } pressed = false; - return true; } } |