Adding a way to ignore bits in the state.
parent
e0ec2cf984
commit
f4a6c20f46
|
@ -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 */
|
||||
|
|
3
st.c
3
st.c
|
@ -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)
|
||||
|
|
Reference in New Issue