From c92ad80ec0d32f3b970366f6259e26ba015fa7c4 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sat, 29 Jun 2024 02:24:10 +0200 Subject: [PATCH] Fix 3D editor Emulate Numpad setting having no effect when previewing a camera --- editor/scene/3d/node_3d_editor_plugin.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/editor/scene/3d/node_3d_editor_plugin.cpp b/editor/scene/3d/node_3d_editor_plugin.cpp index eea4a9703cc..3f2f2261556 100644 --- a/editor/scene/3d/node_3d_editor_plugin.cpp +++ b/editor/scene/3d/node_3d_editor_plugin.cpp @@ -1810,8 +1810,18 @@ void Node3DEditorViewport::input(const Ref &p_event) { } void Node3DEditorViewport::_sinput(const Ref &p_event) { + const Ref k = p_event; + + if (k.is_valid() && k->is_pressed() && EDITOR_GET("editors/3d/navigation/emulate_numpad")) { + const Key code = k->get_physical_keycode(); + if (code >= Key::KEY_0 && code <= Key::KEY_9) { + k->set_keycode(code - Key::KEY_0 + Key::KP_0); + } + } + if (previewing || get_viewport()->gui_get_drag_data()) { - return; //do NONE + // Disable all input actions when previewing a camera or during drag-and-drop. + return; } if (_redirect_freelook_input(p_event, this)) { @@ -2464,8 +2474,6 @@ void Node3DEditorViewport::_sinput(const Ref &p_event) { } } - Ref k = p_event; - if (k.is_valid()) { if (!k->is_pressed()) { return;