Fix tab key - st - Personal fork of st (HTM) git clone git://git.drkhsh.at/st.git (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 16ccf344deccbae53865b6efbe9dc23ebdceccb7 (DIR) parent 461aac159cf3dbb8514e645df6387e03e7c26084 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com> Date: Wed, 14 Nov 2012 11:14:29 +0100 Fix tab key When Shift + Tab is pressed X server send the event XK_ISO_Left_Tab with ShiftMask, so this is the entry we need in config.def.h This patch also revert the previous patch for this issue because it breaks the keyboard. --- config.def.h | 2 +- st.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Diffstat: M config.def.h | 2 +- M st.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- (DIR) diff --git a/config.def.h b/config.def.h @@ -141,7 +141,7 @@ static Key key[] = { { XK_Right, ShiftMask, "\033[1;2C", 0, 0, 0}, { XK_Right, ControlMask, "\033[1;5C", 0, 0, 0}, { XK_Right, Mod1Mask, "\033[1;3C", 0, 0, 0}, - { XK_Tab, ShiftMask, "\033[Z", 0, 0, 0}, + { XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0, 0}, { XK_Return, XK_NO_MOD, "\n", 0, 0, -1}, { XK_Return, XK_NO_MOD, "\r\n", 0, 0, +1}, { XK_Return, Mod1Mask, "\033\n", 0, 0, -1}, (DIR) diff --git a/st.c b/st.c @@ -2700,7 +2700,7 @@ kmap(KeySym k, uint state) { if(kp->k != k) continue; - if((state & mask) != mask || + if((state & mask) != mask && (mask == XK_NO_MOD && state)) { continue; }