summaryrefslogtreecommitdiffstats
path: root/st.c
diff options
context:
space:
mode:
authorHiltjo Posthuma <hiltjo@codemadness.org>2014-05-12 14:39:37 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2014-05-14 07:48:25 +0200
commitcf890e5bf06a65a35fe195aa1ef8ae3e1eb55f51 (patch)
treeb6f946cb82d363cd6db0beb7ecf77e17f2928a20 /st.c
parentRedraw needs all dirty lines to have flash etc. work. (diff)
downloadst-cf890e5bf06a65a35fe195aa1ef8ae3e1eb55f51.tar.gz
st-cf890e5bf06a65a35fe195aa1ef8ae3e1eb55f51.zip
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 '')
-rw-r--r--st.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/st.c b/st.c
index 5946c7c..78d8a01 100644
--- a/st.c
+++ b/st.c
@@ -765,7 +765,7 @@ selsnap(int mode, int *x, int *y, int direction) {
765void 765void
766getbuttoninfo(XEvent *e) { 766getbuttoninfo(XEvent *e) {
767 int type; 767 int type;
768 uint state = e->xbutton.state &~Button1Mask; 768 uint state = e->xbutton.state & ~(Button1Mask | forceselmod);
769 769
770 sel.alt = IS_SET(MODE_ALTSCREEN); 770 sel.alt = IS_SET(MODE_ALTSCREEN);
771 771
@@ -858,7 +858,7 @@ bpress(XEvent *e) {
858 struct timeval now; 858 struct timeval now;
859 Mousekey *mk; 859 Mousekey *mk;
860 860
861 if(IS_SET(MODE_MOUSE)) { 861 if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) {
862 mousereport(e); 862 mousereport(e);
863 return; 863 return;
864 } 864 }
@@ -1090,7 +1090,7 @@ xsetsel(char *str) {
1090 1090
1091void 1091void
1092brelease(XEvent *e) { 1092brelease(XEvent *e) {
1093 if(IS_SET(MODE_MOUSE)) { 1093 if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) {
1094 mousereport(e); 1094 mousereport(e);
1095 return; 1095 return;
1096 } 1096 }
@@ -1113,7 +1113,7 @@ void
1113bmotion(XEvent *e) { 1113bmotion(XEvent *e) {
1114 int oldey, oldex, oldsby, oldsey; 1114 int oldey, oldex, oldsby, oldsey;
1115 1115
1116 if(IS_SET(MODE_MOUSE)) { 1116 if(IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) {
1117 mousereport(e); 1117 mousereport(e);
1118 return; 1118 return;
1119 } 1119 }