summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-05-28 10:37:04 +0200
committerGitHub <noreply@github.com>2019-05-28 10:37:04 +0200
commit06da7bf6b90f6361d7ae42e5dcfaa49ee2b67040 (patch)
tree1c5628d4d4c9672c4c8392d7bab021a0173df2de
parent1f72126ad078a97a7137f3033c43434b36bf4377 (diff)
parented37912e6652bb6c239439955c44462455f61fea (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.cpp32
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()) {