applied Andreas Amann's netwm_active_window patch, thx
c1128417
1 file(s) · +12 −3
| 499 | 499 | cleanupmon(mons); |
|
| 500 | 500 | XSync(dpy, False); |
|
| 501 | 501 | XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); |
|
| 502 | + | XDeleteProperty(dpy, root, netatom[NetActiveWindow]); |
|
| 502 | 503 | } |
|
| 503 | 504 | ||
| 504 | 505 | void |
|
| 858 | 859 | XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]); |
|
| 859 | 860 | setfocus(c); |
|
| 860 | 861 | } |
|
| 861 | - | else |
|
| 862 | + | else { |
|
| 862 | 863 | XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
|
| 864 | + | XDeleteProperty(dpy, root, netatom[NetActiveWindow]); |
|
| 865 | + | } |
|
| 863 | 866 | selmon->sel = c; |
|
| 864 | 867 | drawbars(); |
|
| 865 | 868 | } |
|
| 1527 | 1530 | ||
| 1528 | 1531 | void |
|
| 1529 | 1532 | setfocus(Client *c) { |
|
| 1530 | - | if(!c->neverfocus) |
|
| 1533 | + | if(!c->neverfocus) { |
|
| 1531 | 1534 | XSetInputFocus(dpy, c->win, RevertToPointerRoot, CurrentTime); |
|
| 1535 | + | XChangeProperty(dpy, root, netatom[NetActiveWindow], |
|
| 1536 | + | XA_WINDOW, 32, PropModeReplace, |
|
| 1537 | + | (unsigned char *) &(c->win), 1); |
|
| 1538 | + | } |
|
| 1532 | 1539 | sendevent(c, wmatom[WMTakeFocus]); |
|
| 1533 | 1540 | } |
|
| 1534 | 1541 | ||
| 1786 | 1793 | return; |
|
| 1787 | 1794 | grabbuttons(c, False); |
|
| 1788 | 1795 | XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]); |
|
| 1789 | - | if(setfocus) |
|
| 1796 | + | if(setfocus) { |
|
| 1790 | 1797 | XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
|
| 1798 | + | XDeleteProperty(dpy, root, netatom[NetActiveWindow]); |
|
| 1799 | + | } |
|
| 1791 | 1800 | } |
|
| 1792 | 1801 | ||
| 1793 | 1802 | void |
|