diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-05-28 10:37:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-28 10:37:04 +0200 |
commit | 06da7bf6b90f6361d7ae42e5dcfaa49ee2b67040 (patch) | |
tree | 1c5628d4d4c9672c4c8392d7bab021a0173df2de | |
parent | 1f72126ad078a97a7137f3033c43434b36bf4377 (diff) | |
parent | ed37912e6652bb6c239439955c44462455f61fea (diff) |
Merge pull request #28726 from megalike/add_mac_os_hotkeys_le
Support Mac OS hotkeys in line_edit
-rw-r--r-- | scene/gui/line_edit.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index fa1a63f5e2..1f778bc516 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -160,6 +160,38 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { if (!k->is_pressed()) return; + +#ifdef APPLE_STYLE_KEYS + if (k->get_control() && !k->get_shift() && !k->get_alt() && !k->get_command()) { + uint32_t remap_key = KEY_UNKNOWN; + switch (k->get_scancode()) { + case KEY_F: { + remap_key = KEY_RIGHT; + } break; + case KEY_B: { + remap_key = KEY_LEFT; + } break; + case KEY_P: { + remap_key = KEY_UP; + } break; + case KEY_N: { + remap_key = KEY_DOWN; + } break; + case KEY_D: { + remap_key = KEY_DELETE; + } break; + case KEY_H: { + remap_key = KEY_BACKSPACE; + } break; + } + + if (remap_key != KEY_UNKNOWN) { + k->set_scancode(remap_key); + k->set_control(false); + } + } +#endif + unsigned int code = k->get_scancode(); if (k->get_command()) { |