applied sumik's multihead patch
fde45ebe
3 file(s) · +13 −6
| 49 | 49 | void |
|
| 50 | 50 | focus(Client *c) |
|
| 51 | 51 | { |
|
| 52 | + | if (!issel) |
|
| 53 | + | return; |
|
| 52 | 54 | Client *old = sel; |
|
| 53 | 55 | XEvent ev; |
|
| 54 | 56 |
| 138 | 138 | int i; |
|
| 139 | 139 | Bool istile = arrange == dotile; |
|
| 140 | 140 | ||
| 141 | - | if(c == sel) { |
|
| 141 | + | if(c == sel && issel) { |
|
| 142 | 142 | drawstatus(); |
|
| 143 | 143 | XUnmapWindow(dpy, c->title); |
|
| 144 | 144 | XSetWindowBorder(dpy, c->win, dc.fg); |
| 114 | 114 | } |
|
| 115 | 115 | break; |
|
| 116 | 116 | case Button4: |
|
| 117 | - | viewnext(&a); |
|
| 117 | + | viewprev(&a); |
|
| 118 | 118 | break; |
|
| 119 | 119 | case Button5: |
|
| 120 | - | viewprev(&a); |
|
| 120 | + | viewnext(&a); |
|
| 121 | 121 | break; |
|
| 122 | 122 | } |
|
| 123 | 123 | } |
|
| 226 | 226 | ||
| 227 | 227 | if((c = getclient(ev->window)) || (c = getctitle(ev->window))) |
|
| 228 | 228 | focus(c); |
|
| 229 | - | else if(ev->window == root) |
|
| 229 | + | else if(ev->window == root) { |
|
| 230 | 230 | issel = True; |
|
| 231 | + | XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
|
| 232 | + | drawall(); |
|
| 233 | + | } |
|
| 231 | 234 | } |
|
| 232 | 235 | ||
| 233 | 236 | static void |
|
| 267 | 270 | { |
|
| 268 | 271 | XCrossingEvent *ev = &e->xcrossing; |
|
| 269 | 272 | ||
| 270 | - | if((ev->window == root) && !ev->same_screen) |
|
| 271 | - | issel = True; |
|
| 273 | + | if((ev->window == root) && !ev->same_screen) { |
|
| 274 | + | issel = False; |
|
| 275 | + | drawall(); |
|
| 276 | + | } |
|
| 272 | 277 | } |
|
| 273 | 278 | ||
| 274 | 279 | static void |
|