diff options
author | Hiltjo Posthuma <hiltjo@codemadness.org> | 2014-05-12 14:39:37 +0200 |
---|---|---|
committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2014-05-14 07:48:25 +0200 |
commit | cf890e5bf06a65a35fe195aa1ef8ae3e1eb55f51 (patch) | |
tree | b6f946cb82d363cd6db0beb7ecf77e17f2928a20 /st.c | |
parent | bdb850a16a6d7a2d12b2bd5500a3b7d70290a74a (diff) |
Allow mouse selection override using ShiftMask
Similar to xterm or urxvt holding shift before selecting text with the mouse
allows to override copying text. For example in tmux with "mode-mouse on" or
vim (compiled with --with-x), mc, htop, etc.
forceselmod in config.h sets the modifier to use this mode, by default
ShiftMask.
Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -765,7 +765,7 @@ selsnap(int mode, int *x, int *y, int direction) { void getbuttoninfo(XEvent *e) { int type; - uint state = e->xbutton.state &~Button1Mask; + uint state = e->xbutton.state & ~(Button1Mask | forceselmod); sel.alt = IS_SET(MODE_ALTSCREEN); @@ -858,7 +858,7 @@ bpress(XEvent *e) { struct timeval now; Mousekey *mk; - if(IS_SET(MODE_MOUSE)) { + if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { mousereport(e); return; } @@ -1090,7 +1090,7 @@ xsetsel(char *str) { void brelease(XEvent *e) { - if(IS_SET(MODE_MOUSE)) { + if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { mousereport(e); return; } @@ -1113,7 +1113,7 @@ void bmotion(XEvent *e) { int oldey, oldex, oldsby, oldsey; - if(IS_SET(MODE_MOUSE)) { + if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { mousereport(e); return; } |