summaryrefslogtreecommitdiffstats
path: root/editor/plugins/abstract_polygon_2d_editor.cpp
diff options
context:
space:
mode:
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;