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>
This commit is contained in:

committed by
Roberto E. Vargas Caballero

parent
bdb850a16a
commit
cf890e5bf0
8
st.c
8
st.c
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user