applied Sanders focus_* patches, removed the unnecessary clean-prefix from the new function names
2272df9d
2 file(s) · +32 −28
| 11 | 11 | /* static functions */ |
|
| 12 | 12 | ||
| 13 | 13 | static void |
|
| 14 | + | grabbutton(Client *c, unsigned int button, unsigned int modifier) |
|
| 15 | + | { |
|
| 16 | + | XGrabButton(dpy, button, modifier, c->win, False, BUTTONMASK, |
|
| 17 | + | GrabModeAsync, GrabModeSync, None, None); |
|
| 18 | + | XGrabButton(dpy, button, modifier | LockMask, c->win, False, BUTTONMASK, |
|
| 19 | + | GrabModeAsync, GrabModeSync, None, None); |
|
| 20 | + | XGrabButton(dpy, button, modifier | numlockmask, c->win, False, BUTTONMASK, |
|
| 21 | + | GrabModeAsync, GrabModeSync, None, None); |
|
| 22 | + | XGrabButton(dpy, button, modifier | numlockmask | LockMask, c->win, False, BUTTONMASK, |
|
| 23 | + | GrabModeAsync, GrabModeSync, None, None); |
|
| 24 | + | } |
|
| 25 | + | ||
| 26 | + | static void |
|
| 14 | 27 | resizetitle(Client *c) |
|
| 15 | 28 | { |
|
| 16 | 29 | int i; |
|
| 31 | 44 | ||
| 32 | 45 | } |
|
| 33 | 46 | ||
| 47 | + | static void |
|
| 48 | + | ungrabbutton(Client *c, unsigned int button, unsigned int modifier) |
|
| 49 | + | { |
|
| 50 | + | XUngrabButton(dpy, button, modifier, c->win); |
|
| 51 | + | XUngrabButton(dpy, button, modifier | LockMask, c->win); |
|
| 52 | + | XUngrabButton(dpy, button, modifier | numlockmask, c->win); |
|
| 53 | + | XUngrabButton(dpy, button, modifier | numlockmask | LockMask, c->win); |
|
| 54 | + | } |
|
| 55 | + | ||
| 34 | 56 | static int |
|
| 35 | 57 | xerrordummy(Display *dsply, XErrorEvent *ee) |
|
| 36 | 58 | { |
|
| 53 | 75 | ||
| 54 | 76 | if (!issel) |
|
| 55 | 77 | return; |
|
| 56 | - | if(sel && sel->ismax) |
|
| 78 | + | if(sel && sel->ismax && sel != c) |
|
| 57 | 79 | togglemax(NULL); |
|
| 58 | 80 | sel = c; |
|
| 59 | - | if(old && old != c) |
|
| 81 | + | if(old && old != c) { |
|
| 82 | + | grabbutton(old, AnyButton, 0); |
|
| 60 | 83 | drawtitle(old); |
|
| 84 | + | } |
|
| 85 | + | ungrabbutton(c, AnyButton, 0); |
|
| 61 | 86 | drawtitle(c); |
|
| 62 | 87 | XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); |
|
| 63 | 88 | } |
|
| 230 | 255 | c->next = clients; |
|
| 231 | 256 | clients = c; |
|
| 232 | 257 | ||
| 233 | - | XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK, |
|
| 234 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 235 | - | XGrabButton(dpy, Button1, MODKEY | LockMask, c->win, False, BUTTONMASK, |
|
| 236 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 237 | - | XGrabButton(dpy, Button1, MODKEY | numlockmask, c->win, False, BUTTONMASK, |
|
| 238 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 239 | - | XGrabButton(dpy, Button1, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, |
|
| 240 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 241 | - | ||
| 242 | - | XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK, |
|
| 243 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 244 | - | XGrabButton(dpy, Button2, MODKEY | LockMask, c->win, False, BUTTONMASK, |
|
| 245 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 246 | - | XGrabButton(dpy, Button2, MODKEY | numlockmask, c->win, False, BUTTONMASK, |
|
| 247 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 248 | - | XGrabButton(dpy, Button2, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, |
|
| 249 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 250 | - | ||
| 251 | - | XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK, |
|
| 252 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 253 | - | XGrabButton(dpy, Button3, MODKEY | LockMask, c->win, False, BUTTONMASK, |
|
| 254 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 255 | - | XGrabButton(dpy, Button3, MODKEY | numlockmask, c->win, False, BUTTONMASK, |
|
| 256 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 257 | - | XGrabButton(dpy, Button3, MODKEY | numlockmask | LockMask, c->win, False, BUTTONMASK, |
|
| 258 | - | GrabModeAsync, GrabModeSync, None, None); |
|
| 258 | + | grabbutton(c, Button1, MODKEY); |
|
| 259 | + | grabbutton(c, Button2, MODKEY); |
|
| 260 | + | grabbutton(c, Button3, MODKEY); |
|
| 259 | 261 | ||
| 260 | 262 | settags(c); |
|
| 261 | 263 | if(!c->isfloat) |
|
| 119 | 119 | } |
|
| 120 | 120 | else if((c = getclient(ev->window))) { |
|
| 121 | 121 | focus(c); |
|
| 122 | + | if(CLEANMASK(ev->state) == 0) |
|
| 123 | + | return; |
|
| 122 | 124 | switch(ev->button) { |
|
| 123 | 125 | default: |
|
| 124 | 126 | break; |