diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-03-08 13:09:10 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-03-08 13:09:10 +0100 |
commit | 2c0797b2577bbdbf7f3c7635f820ac46a206669b (patch) | |
tree | 15cef0d99b7ca5ef39fc7d2c5018c940d8ab4188 /editor/plugins/abstract_polygon_2d_editor.cpp | |
parent | 7688460bf78d5fc198f8a2cbe0943981744a4dc2 (diff) | |
parent | f2f3f17de851896ce0096876e370dd67076c50ef (diff) | |
download | redot-engine-2c0797b2577bbdbf7f3c7635f820ac46a206669b.tar.gz |
Merge pull request #87161 from ryevdokimov/do-not-commit
Do not commit transforms and handles if no changes were made
Diffstat (limited to 'editor/plugins/abstract_polygon_2d_editor.cpp')
-rw-r--r-- | editor/plugins/abstract_polygon_2d_editor.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index e7a1d2735e..dd52375c10 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -291,6 +291,7 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) const PosVertex closest = closest_point(gpoint); if (closest.valid()) { + original_mouse_pos = gpoint; pre_move_edit = _get_polygon(closest.polygon); edited_point = PosVertex(closest, xform.affine_inverse().xform(closest.pos)); selected_point = closest; @@ -327,15 +328,15 @@ bool AbstractPolygon2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) } } else { if (edited_point.valid()) { - //apply - - Vector<Vector2> vertices = _get_polygon(edited_point.polygon); - ERR_FAIL_INDEX_V(edited_point.vertex, vertices.size(), false); - vertices.write[edited_point.vertex] = edited_point.pos - _get_offset(edited_point.polygon); - - undo_redo->create_action(TTR("Edit Polygon")); - _action_set_polygon(edited_point.polygon, pre_move_edit, vertices); - _commit_action(); + if (original_mouse_pos != gpoint) { + Vector<Vector2> vertices = _get_polygon(edited_point.polygon); + ERR_FAIL_INDEX_V(edited_point.vertex, vertices.size(), false); + vertices.write[edited_point.vertex] = edited_point.pos - _get_offset(edited_point.polygon); + + undo_redo->create_action(TTR("Edit Polygon")); + _action_set_polygon(edited_point.polygon, pre_move_edit, vertices); + _commit_action(); + } edited_point = PosVertex(); return true; |