diff options
| -rw-r--r-- | config.def.h | 6 | ||||
| -rw-r--r-- | st.c | 3 | 
2 files changed, 9 insertions, 0 deletions
| diff --git a/config.def.h b/config.def.h index 93fc26d..07a22ed 100644 --- a/config.def.h +++ b/config.def.h @@ -104,6 +104,12 @@ static Shortcut shortcuts[] = {   */  static KeySym mappedkeys[] = { -1 }; +/* + * Which bits of the state should be ignored. By default the state bit for the + * keyboard layout (XK_SWITCH_MOD) is ignored. + */ +uint ignoremod = XK_SWITCH_MOD; +  /* key, mask, output, keypad, cursor, crlf */  static Key key[] = {  	/* keysym             mask         string         keypad cursor crlf */ @@ -61,6 +61,7 @@  #define DRAW_BUF_SIZ  20*1024  #define XK_ANY_MOD    UINT_MAX  #define XK_NO_MOD     0 +#define XK_SWITCH_MOD (1<<13)  #define REDRAW_TIMEOUT (80*1000) /* 80 ms */ @@ -3008,6 +3009,8 @@ focus(XEvent *ev) {  inline bool  match(uint mask, uint state) { +	state &= ~(ignoremod); +  	if(mask == XK_NO_MOD && state)  		return false;  	if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state) | 
