aboutsummaryrefslogtreecommitdiff
path: root/x.c
diff options
context:
space:
mode:
authorAvi Halachmi (:avih) <avihpit@yahoo.com>2019-10-10 23:42:30 +0300
committerHiltjo Posthuma <hiltjo@codemadness.org>2019-10-13 21:46:31 +0200
commitb6d280de6df30167ce9cf30fadefc362e77729e7 (patch)
tree7e1ab2ec0b42e2149a41f3a6f8165ba11f54f088 /x.c
parentba7f4d69af62d20e13fea78a408095e017410651 (diff)
downloadst-patched-b6d280de6df30167ce9cf30fadefc362e77729e7.tar.bz2
st-patched-b6d280de6df30167ce9cf30fadefc362e77729e7.tar.xz
st-patched-b6d280de6df30167ce9cf30fadefc362e77729e7.zip
mouse shortcuts: allow override for all shortcuts
Allow forceselmod to override all mouse shortcuts rather than only selection, and rename it to forcemousemod as it's now more appropriate. This will affect mouse shortcuts which use mask other than XK_ANY_MOD. This does not affect the default behavior because the default mouse shortcuts (wheel) use XK_ANY_MOD, where forceselmod already activated the override also before this change. Previously, if a mouse shortcut was configured with a specific mod and forceselmod was held, then the shortcut did not execute unless the configured mod included forceselmod.
Diffstat (limited to 'x.c')
-rw-r--r--x.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/x.c b/x.c
index 2a05a81..c967caf 100644
--- a/x.c
+++ b/x.c
@@ -340,7 +340,7 @@ void
340mousesel(XEvent *e, int done) 340mousesel(XEvent *e, int done)
341{ 341{
342 int type, seltype = SEL_REGULAR; 342 int type, seltype = SEL_REGULAR;
343 uint state = e->xbutton.state & ~(Button1Mask | forceselmod); 343 uint state = e->xbutton.state & ~(Button1Mask | forcemousemod);
344 344
345 for (type = 1; type < LEN(selmasks); ++type) { 345 for (type = 1; type < LEN(selmasks); ++type) {
346 if (match(selmasks[type], state)) { 346 if (match(selmasks[type], state)) {
@@ -423,14 +423,14 @@ bpress(XEvent *e)
423 MouseShortcut *ms; 423 MouseShortcut *ms;
424 int snap; 424 int snap;
425 425
426 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { 426 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) {
427 mousereport(e); 427 mousereport(e);
428 return; 428 return;
429 } 429 }
430 430
431 for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { 431 for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {
432 if (e->xbutton.button == ms->button 432 if (e->xbutton.button == ms->button &&
433 && match(ms->mod, e->xbutton.state)) { 433 match(ms->mod, e->xbutton.state & ~forcemousemod)) {
434 ms->func(&(ms->arg)); 434 ms->func(&(ms->arg));
435 return; 435 return;
436 } 436 }
@@ -650,7 +650,7 @@ xsetsel(char *str)
650void 650void
651brelease(XEvent *e) 651brelease(XEvent *e)
652{ 652{
653 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { 653 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) {
654 mousereport(e); 654 mousereport(e);
655 return; 655 return;
656 } 656 }
@@ -664,7 +664,7 @@ brelease(XEvent *e)
664void 664void
665bmotion(XEvent *e) 665bmotion(XEvent *e)
666{ 666{
667 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { 667 if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) {
668 mousereport(e); 668 mousereport(e);
669 return; 669 return;
670 } 670 }