You've already forked godot
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:
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user