1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-09 12:50:35 +00:00

Merge pull request #71156 from EricEzaM/71113-cancelling-node-selection-with-escape-breaks-shape-editing-undo

Fix cancelling selection (pressing escape) while gizmo editing making uncommitted changes.
This commit is contained in:
Rémi Verschelde
2023-03-07 12:03:42 +01:00
3 changed files with 12 additions and 0 deletions

View File

@@ -356,6 +356,7 @@ bool CollisionShape2DEditor::forward_canvas_gui_input(const Ref<InputEvent> &p_e
return false; return false;
} }
original_point = handles[edit_handle];
original = get_handle_value(edit_handle); original = get_handle_value(edit_handle);
original_transform = node->get_global_transform(); original_transform = node->get_global_transform();
last_point = original; last_point = original;
@@ -572,6 +573,11 @@ void CollisionShape2DEditor::edit(Node *p_node) {
_get_current_shape_type(); _get_current_shape_type();
} else { } else {
if (pressed) {
set_handle(edit_handle, original_point);
pressed = false;
}
edit_handle = -1; edit_handle = -1;
shape_type = -1; shape_type = -1;

View File

@@ -71,6 +71,7 @@ class CollisionShape2DEditor : public Control {
bool pressed; bool pressed;
Variant original; Variant original;
Transform2D original_transform; Transform2D original_transform;
Vector2 original_point;
Point2 last_point; Point2 last_point;
Variant get_handle_value(int idx) const; Variant get_handle_value(int idx) const;

View File

@@ -2103,6 +2103,11 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
} }
if (_edit.mode == TRANSFORM_NONE) { if (_edit.mode == TRANSFORM_NONE) {
if (_edit.gizmo.is_valid()) {
// Restore.
_edit.gizmo->commit_handle(_edit.gizmo_handle, _edit.gizmo_handle_secondary, _edit.gizmo_initial_value, true);
_edit.gizmo = Ref<EditorNode3DGizmo>();
}
if (k->get_keycode() == Key::ESCAPE && !cursor.region_select) { if (k->get_keycode() == Key::ESCAPE && !cursor.region_select) {
_clear_selected(); _clear_selected();
return; return;