diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-03 11:02:53 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-03-03 11:02:53 +0100 |
commit | d76c1c4f45106d4b2447e01d243cc3e0e65e5a7d (patch) | |
tree | 87993384e880eff316c0044eb90c4da1addfaba6 /core/input | |
parent | eafc88c83527af39ab8aff55884d6348d1ca0f84 (diff) | |
parent | 52de40310a9d98496aa3de5aaf457a7e60959b77 (diff) | |
download | redot-engine-d76c1c4f45106d4b2447e01d243cc3e0e65e5a7d.tar.gz |
Merge pull request #73651 from hakro/editor-freelook-physical-shortcuts
Use physical shortcuts for freelook navigation in the editor
Diffstat (limited to 'core/input')
-rw-r--r-- | core/input/input_event.cpp | 9 | ||||
-rw-r--r-- | core/input/input_event.h | 2 |
2 files changed, 8 insertions, 3 deletions
diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp index a6c1bb168c..9d5d84a508 100644 --- a/core/input/input_event.cpp +++ b/core/input/input_event.cpp @@ -474,10 +474,15 @@ String InputEventKey::to_string() { return vformat("InputEventKey: keycode=%s, mods=%s, physical=%s, pressed=%s, echo=%s", kc, mods, physical, p, e); } -Ref<InputEventKey> InputEventKey::create_reference(Key p_keycode) { +Ref<InputEventKey> InputEventKey::create_reference(Key p_keycode, bool p_physical) { Ref<InputEventKey> ie; ie.instantiate(); - ie->set_keycode(p_keycode & KeyModifierMask::CODE_MASK); + if (p_physical) { + ie->set_physical_keycode(p_keycode & KeyModifierMask::CODE_MASK); + } else { + ie->set_keycode(p_keycode & KeyModifierMask::CODE_MASK); + } + ie->set_unicode(char32_t(p_keycode & KeyModifierMask::CODE_MASK)); if ((p_keycode & KeyModifierMask::SHIFT) != Key::NONE) { diff --git a/core/input/input_event.h b/core/input/input_event.h index eff8d479db..4be42d0bd2 100644 --- a/core/input/input_event.h +++ b/core/input/input_event.h @@ -195,7 +195,7 @@ public: virtual String as_text() const override; virtual String to_string() override; - static Ref<InputEventKey> create_reference(Key p_keycode_with_modifier_masks); + static Ref<InputEventKey> create_reference(Key p_keycode_with_modifier_masks, bool p_physical = false); InputEventKey() {} }; |