summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/key_mapping_x11.cpp
diff options
context:
space:
mode:
authorFrixuu <kontakt@lukasz.xyz>2021-09-17 03:07:59 +0200
committerFrixuu <kontakt@lukasz.xyz>2021-09-21 00:03:02 +0200
commit650e63a7ca433e70ab458893f1dcbb8820278d86 (patch)
tree2416b7d41bc9a0bd160dbe4631cd89f5d0dbd537 /platform/linuxbsd/key_mapping_x11.cpp
parent2d1699ef82a29ef65d810194ee76dddc0d9e0389 (diff)
downloadredot-engine-650e63a7ca433e70ab458893f1dcbb8820278d86.tar.gz
Allow for mapping keycodes to current layout
Diffstat (limited to 'platform/linuxbsd/key_mapping_x11.cpp')
-rw-r--r--platform/linuxbsd/key_mapping_x11.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/platform/linuxbsd/key_mapping_x11.cpp b/platform/linuxbsd/key_mapping_x11.cpp
index a1ef28234d..829feda40a 100644
--- a/platform/linuxbsd/key_mapping_x11.cpp
+++ b/platform/linuxbsd/key_mapping_x11.cpp
@@ -309,6 +309,18 @@ unsigned int KeyMappingX11::get_scancode(unsigned int p_code) {
return keycode;
}
+unsigned int KeyMappingX11::get_xlibcode(unsigned int p_keysym) {
+ unsigned int code = 0;
+ for (int i = 0; _scancode_to_keycode[i].keysym != KEY_UNKNOWN; i++) {
+ if (_scancode_to_keycode[i].keysym == p_keysym) {
+ code = _scancode_to_keycode[i].keycode;
+ break;
+ }
+ }
+
+ return code;
+}
+
Key KeyMappingX11::get_keycode(KeySym p_keysym) {
// kinda bruteforce.. could optimize.