@@ -1949,8 +1949,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
19491949 clicked = ObjectID ();
19501950
19511951 bool node_selected = get_selected_count () > 0 ;
1952-
1953- if (after != EditorPlugin::AFTER_GUI_INPUT_CUSTOM && !b->is_alt_pressed ()) {
1952+ if (after != EditorPlugin::AFTER_GUI_INPUT_CUSTOM && (spatial_editor->get_tool_mode () != Node3DEditor::TOOL_MODE_SELECT || !b->is_command_or_control_pressed ())) {
19541953 // Single item selection.
19551954 clicked = _select_ray (b->get_position ());
19561955
@@ -1968,21 +1967,11 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
19681967 }
19691968 }
19701969
1971- if (!clicked_wants_append && node_selected && (( spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SELECT && b->is_command_or_control_pressed ()) || spatial_editor-> get_tool_mode () == Node3DEditor::TOOL_MODE_ROTATE )) {
1970+ if (!clicked_wants_append && node_selected && spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SELECT && b->is_command_or_control_pressed ()) {
19721971 begin_transform (TRANSFORM_ROTATE, false );
19731972 break ;
19741973 }
19751974
1976- if (!clicked_wants_append && node_selected && spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_MOVE) {
1977- begin_transform (TRANSFORM_TRANSLATE, false );
1978- break ;
1979- }
1980-
1981- if (!clicked_wants_append && node_selected && spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SCALE) {
1982- begin_transform (TRANSFORM_SCALE, false );
1983- break ;
1984- }
1985-
19861975 surface->queue_redraw ();
19871976 } else {
19881977 if (spatial_editor->get_tool_mode () == Node3DEditor::TOOL_RULER) {
@@ -2135,10 +2124,22 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
21352124 return ;
21362125 }
21372126
2138- if (clicked.is_valid () && movement_threshold_passed && (spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_MOVE)) {
2139- _compute_edit (_edit.original_mouse_pos );
2140- clicked = ObjectID ();
2141- _edit.mode = TRANSFORM_TRANSLATE;
2127+ if (clicked.is_valid () && movement_threshold_passed) {
2128+ TransformMode mode = TRANSFORM_NONE;
2129+
2130+ if (spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SELECT || spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_MOVE) {
2131+ mode = TRANSFORM_TRANSLATE;
2132+ } else if (spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_ROTATE) {
2133+ mode = TRANSFORM_ROTATE;
2134+ } else if (spatial_editor->get_tool_mode () == Node3DEditor::TOOL_MODE_SCALE) {
2135+ mode = TRANSFORM_SCALE;
2136+ }
2137+
2138+ if (mode != TRANSFORM_NONE) {
2139+ _compute_edit (_edit.original_mouse_pos );
2140+ clicked = ObjectID ();
2141+ _edit.mode = mode;
2142+ }
21422143 }
21432144
21442145 if (_edit.mode == TRANSFORM_NONE || _edit.numeric_input != 0 || _edit.numeric_next_decimal != 0 ) {
0 commit comments