Adding a way to ignore bits in the state.
This commit is contained in:
parent
e0ec2cf984
commit
f4a6c20f46
2 changed files with 9 additions and 0 deletions
|
@ -104,6 +104,12 @@ static Shortcut shortcuts[] = {
|
||||||
*/
|
*/
|
||||||
static KeySym mappedkeys[] = { -1 };
|
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 */
|
/* key, mask, output, keypad, cursor, crlf */
|
||||||
static Key key[] = {
|
static Key key[] = {
|
||||||
/* keysym mask string keypad cursor crlf */
|
/* keysym mask string keypad cursor crlf */
|
||||||
|
|
3
st.c
3
st.c
|
@ -61,6 +61,7 @@
|
||||||
#define DRAW_BUF_SIZ 20*1024
|
#define DRAW_BUF_SIZ 20*1024
|
||||||
#define XK_ANY_MOD UINT_MAX
|
#define XK_ANY_MOD UINT_MAX
|
||||||
#define XK_NO_MOD 0
|
#define XK_NO_MOD 0
|
||||||
|
#define XK_SWITCH_MOD (1<<13)
|
||||||
|
|
||||||
#define REDRAW_TIMEOUT (80*1000) /* 80 ms */
|
#define REDRAW_TIMEOUT (80*1000) /* 80 ms */
|
||||||
|
|
||||||
|
@ -3008,6 +3009,8 @@ focus(XEvent *ev) {
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
match(uint mask, uint state) {
|
match(uint mask, uint state) {
|
||||||
|
state &= ~(ignoremod);
|
||||||
|
|
||||||
if(mask == XK_NO_MOD && state)
|
if(mask == XK_NO_MOD && state)
|
||||||
return false;
|
return false;
|
||||||
if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state)
|
if(mask != XK_ANY_MOD && mask != XK_NO_MOD && !state)
|
||||||
|
|
Loading…
Reference in a new issue