Browse Source

Optimizing the key lookup to the X11 function key. It is still possible to

remap other keys.
Christoph Lohmann 12 years ago
parent
commit
2b6521f5d2
2 changed files with 20 additions and 0 deletions
  1. 6 0
      config.def.h
  2. 14 0
      st.c

+ 6 - 0
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 */

+ 14 - 0
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;