X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/489982d4b8442af25a380f8c22be542055cda81f..1fa27b93f9a78ee78a35a5449bb8c4d0c3ef0f1b:/st.c diff --git a/st.c b/st.c index d0a6218..da2ce3f 100644 --- a/st.c +++ b/st.c @@ -3501,15 +3501,7 @@ focus(XEvent *ev) { static 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) - return false; - if(mask == XK_ANY_MOD) - return true; - return state == mask; + return mask == XK_ANY_MOD || mask == (state & ~ignoremod); } void @@ -3579,7 +3571,6 @@ kpress(XEvent *ev) { return; len = XmbLookupString(xw.xic, e, buf, sizeof buf, &ksym, &status); - e->state &= ~Mod2Mask; /* 1. shortcuts */ for(bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { if(ksym == bp->keysym && match(bp->mod, e->state)) {