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) { | |||
| 765 | void | 765 | void |
| 766 | getbuttoninfo(XEvent *e) { | 766 | getbuttoninfo(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 | ||
| 1091 | void | 1091 | void |
| 1092 | brelease(XEvent *e) { | 1092 | brelease(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 | |||
| 1113 | bmotion(XEvent *e) { | 1113 | bmotion(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 | } |
