diff options
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;  	}  | 
