Add KAM sequence

From: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
Date: Wed, 19 Sep 2012 19:49:48 +0200

This sequence lock/unlock the keyboard ignoring all the key pressing events
from X server.
---
 st.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/st.c b/st.c
index 43dbe32..7e369c7 100644
--- a/st.c
+++ b/st.c
_AT_@ -107,7 +107,8 @@ enum term_mode {
 	MODE_MOUSEBTN    = 32,
 	MODE_MOUSEMOTION = 64,
 	MODE_MOUSE       = 32|64,
-	MODE_REVERSE     = 128
+	MODE_REVERSE     = 128,
+	MODE_KBDLOCK     = 256
 };
 
 enum escape_state {
_AT_@ -1319,6 +1320,9 @@ tsetmode(bool priv, bool set, int *args, int narg) {
 			}
 		} else {
 			switch(*args) {
+			case 2:
+				MODBIT(term.mode, set, MODE_KBDLOCK);
+				break;
 			case 4:
 				MODBIT(term.mode, set, MODE_INSERT);
 				break;
_AT_@ -2269,6 +2273,8 @@ kpress(XEvent *ev) {
 	int shift;
 	Status status;
 
+	if (IS_SET(MODE_KBDLOCK))
+		return;
 	meta = e->state & Mod1Mask;
 	shift = e->state & ShiftMask;
 	len = XmbLookupString(xw.xic, e, buf, sizeof(buf), &ksym, &status);
-- 
1.7.10.4
--r5Pyd7+fXNt84Ff3
Content-Type: text/x-diff; charset=utf-8
Content-Disposition: attachment; filename="0004-Fix-LNM-sequence.patch"
Received on Mon Sep 17 2001 - 00:00:00 CEST

This archive was generated by hypermail 2.3.0 : Wed Sep 19 2012 - 20:48:04 CEST