فهرست منبع

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

remap other keys.
Christoph Lohmann 12 سال پیش
والد
کامیت
2b6521f5d2
2فایلهای تغییر یافته به همراه20 افزوده شده و 0 حذف شده
  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;