summaryrefslogtreecommitdiffstats
path: root/editor/plugins/abstract_polygon_2d_editor.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-03-08 13:09:10 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-03-08 13:09:10 +0100
commit2c0797b2577bbdbf7f3c7635f820ac46a206669b (patch)
tree15cef0d99b7ca5ef39fc7d2c5018c940d8ab4188 /editor/plugins/abstract_polygon_2d_editor.cpp
parent7688460bf78d5fc198f8a2cbe0943981744a4dc2 (diff)
parentf2f3f17de851896ce0096876e370dd67076c50ef (diff)
downloadredot-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.cpp19
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;