aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.def.h14
-rw-r--r--x.c12
2 files changed, 13 insertions, 13 deletions
diff --git a/config.def.h b/config.def.h
index 36ff6ce..a0a0d2d 100644
--- a/config.def.h
+++ b/config.def.h
@@ -151,6 +151,13 @@ static unsigned int mousebg = 0;
151static unsigned int defaultattr = 11; 151static unsigned int defaultattr = 11;
152 152
153/* 153/*
154 * Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
155 * Note that if you want to use ShiftMask with selmasks, set this to an other
156 * modifier, set to 0 to not use it.
157 */
158static uint forcemousemod = ShiftMask;
159
160/*
154 * Internal mouse shortcuts. 161 * Internal mouse shortcuts.
155 * Beware that overloading Button1 will disable the selection. 162 * Beware that overloading Button1 will disable the selection.
156 */ 163 */
@@ -214,13 +221,6 @@ static KeySym mappedkeys[] = { -1 };
214static uint ignoremod = Mod2Mask|XK_SWITCH_MOD; 221static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
215 222
216/* 223/*
217 * Override mouse-select while mask is active (when MODE_MOUSE is set).
218 * Note that if you want to use ShiftMask with selmasks, set this to an other
219 * modifier, set to 0 to not use it.
220 */
221static uint forceselmod = ShiftMask;
222
223/*
224 * This is the huge key array which defines all compatibility to the Linux 224 * This is the huge key array which defines all compatibility to the Linux
225 * world. Please decide about changes wisely. 225 * world. Please decide about changes wisely.
226 */ 226 */
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 }