summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Lohmann <20h@r-36.net>2012-11-15 20:19:35 +0100
committerChristoph Lohmann <20h@r-36.net>2012-11-15 20:19:35 +0100
commit2b6521f5d23da404a597d675d12d4c0cf89657de (patch)
tree44aba527c663bf8242f1b5d4ac73218e1c18810b
parent927d8fb45971ddf0eac115ad04161aba6bbd8bc7 (diff)
Optimizing the key lookup to the X11 function key. It is still possible to
remap other keys.
-rw-r--r--config.def.h6
-rw-r--r--st.c14
2 files changed, 20 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h
index 7a7262c..c0519a8 100644
--- a/config.def.h
+++ b/config.def.h
@@ -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
index 477a8f8..02ef411 100644
--- a/st.c
+++ b/st.c
@@ -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;