tOptimizing the key lookup to the X11 function key. It is still possible to - s… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 2b6521f5d23da404a597d675d12d4c0cf89657de | |
parent 927d8fb45971ddf0eac115ad04161aba6bbd8bc7 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Thu, 15 Nov 2012 20:19:35 +0100 | |
Optimizing the key lookup to the X11 function key. It is still possible to | |
remap other keys. | |
Diffstat: | |
M config.def.h | 6 ++++++ | |
M st.c | 14 ++++++++++++++ | |
2 files changed, 20 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -88,6 +88,12 @@ static Shortcut shortcuts[] = { | |
* position for a key. | |
*/ | |
+/* | |
+ * If you want something else but the function keys of X11 (0xFF00 - 0xFFFF) | |
+ * mapped below, add them to this array. | |
+ */ | |
+static KeySym mappedkeys[] = { -1 }; | |
+ | |
/* key, mask, output, keypad, cursor, crlf */ | |
static Key key[] = { | |
/* keysym mask string keypad cursor crlf */ | |
diff --git a/st.c b/st.c | |
t@@ -2711,6 +2711,20 @@ char* | |
kmap(KeySym k, uint state) { | |
uint mask; | |
Key *kp; | |
+ int i; | |
+ | |
+ /* Check for mapped keys out of X11 function keys. */ | |
+ for(i = 0; i < LEN(mappedkeys); i++) { | |
+ if(mappedkeys[i] == k) { | |
+ fprintf(stderr, "mapped function key.\n"); | |
+ break; | |
+ } | |
+ } | |
+ if(i == LEN(mappedkeys)) { | |
+ if((k & 0xFFFF) < 0xFF00) | |
+ return NULL; | |
+ } | |
+ fprintf(stderr, "Function key.\n"); | |
for(kp = key; kp < key + LEN(key); kp++) { | |
mask = kp->mask; |