Skip to content

Commit

Permalink
Fix instant transformations not being committed when used in succession
Browse files Browse the repository at this point in the history
Also:
- Fix holding down keys repeatedly committing instant transformations, and disallow starting instant during non-instant
- Fix echoed inputs starting new instant transformations after clicking to confirm, and disallow left mouse release committing instant transformations
  • Loading branch information
ev13bird committed Sep 5, 2024
1 parent 8120e03 commit 060a1a0
Showing 1 changed file with 23 additions and 8 deletions.
31 changes: 23 additions & 8 deletions editor/plugins/node_3d_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1975,7 +1975,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
}
}

if (_edit.mode != TRANSFORM_NONE) {
if (!_edit.instant && _edit.mode != TRANSFORM_NONE) {
Node3D *selected = spatial_editor->get_single_selected_node();
Node3DEditorSelectedItem *se = selected ? editor_selection->get_node_editor_data<Node3DEditorSelectedItem>(selected) : nullptr;

Expand Down Expand Up @@ -2399,15 +2399,30 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
if (ED_IS_SHORTCUT("spatial_editor/cancel_transform", p_event) && _edit.mode != TRANSFORM_NONE) {
cancel_transform();
}
if (!is_freelook_active()) {
if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event)) {
begin_transform(TRANSFORM_TRANSLATE, true);
if (!is_freelook_active() && !k->is_echo()) {
if (ED_IS_SHORTCUT("spatial_editor/instant_translate", p_event) && _edit.mode != TRANSFORM_TRANSLATE) {
if (_edit.mode == TRANSFORM_NONE) {
begin_transform(TRANSFORM_TRANSLATE, true);
} else if (_edit.instant) {
commit_transform();
begin_transform(TRANSFORM_TRANSLATE, true);
}
}
if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event)) {
begin_transform(TRANSFORM_ROTATE, true);
if (ED_IS_SHORTCUT("spatial_editor/instant_rotate", p_event) && _edit.mode != TRANSFORM_ROTATE) {
if (_edit.mode == TRANSFORM_NONE) {
begin_transform(TRANSFORM_ROTATE, true);
} else if (_edit.instant) {
commit_transform();
begin_transform(TRANSFORM_ROTATE, true);
}
}
if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event)) {
begin_transform(TRANSFORM_SCALE, true);
if (ED_IS_SHORTCUT("spatial_editor/instant_scale", p_event) && _edit.mode != TRANSFORM_SCALE) {
if (_edit.mode == TRANSFORM_NONE) {
begin_transform(TRANSFORM_SCALE, true);
} else if (_edit.instant) {
commit_transform();
begin_transform(TRANSFORM_SCALE, true);
}
}
}

Expand Down

0 comments on commit 060a1a0

Please sign in to comment.