Explorar el Código

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

remap other keys.
Christoph Lohmann hace 12 años
padre
commit
2b6521f5d2
Se han modificado 2 ficheros con 20 adiciones y 0 borrados
  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;