| 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; |