diff options
author | okan <okan> | 2016-09-16 14:32:02 +0000 |
---|---|---|
committer | okan <okan> | 2016-09-16 14:32:02 +0000 |
commit | fa06851b0ee5b49138f782e500e12646455dd171 (patch) | |
tree | d79d5fa97a78d6df308cb536d6bd15e9a30a0737 /screen.c | |
parent | 8d44e4b3e834663253dee110e98f8284b3092afc (diff) | |
parent | 6a53e3a859cd55b6f01ecb2a8a8a30af5d940345 (diff) | |
download | cwm-fa06851b0ee5b49138f782e500e12646455dd171.tar.gz cwm-fa06851b0ee5b49138f782e500e12646455dd171.tar.xz cwm-fa06851b0ee5b49138f782e500e12646455dd171.zip |
cvsimport
* refs/heads/master: During init, query screen for _NET_ACTIVE_WINDOW and set that client as active; while we already look at what's under the pointer, use this information first, then look under the pointer (saving that round-trip). This restores the active state to a client after restart even if the pointer is not above it (and of course the pointer is not above another client).
Diffstat (limited to 'screen.c')
-rw-r--r-- | screen.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/screen.c b/screen.c index 37bb292..5d724a8 100644 --- a/screen.c +++ b/screen.c @@ -35,7 +35,7 @@ void screen_init(int which) { struct screen_ctx *sc; - Window *wins, w0, w1; + Window *wins, w0, w1, active = None; XSetWindowAttributes rootattr; unsigned int nwins, i; @@ -65,6 +65,7 @@ screen_init(int which) xu_ewmh_net_wm_number_of_desktops(sc); xu_ewmh_net_showing_desktop(sc); xu_ewmh_net_virtual_roots(sc); + active = xu_ewmh_get_net_active_window(sc); rootattr.cursor = Conf.cursor[CF_NORMAL]; rootattr.event_mask = SubstructureRedirectMask | @@ -77,7 +78,7 @@ screen_init(int which) /* Deal with existing clients. */ if (XQueryTree(X_Dpy, sc->rootwin, &w0, &w1, &wins, &nwins)) { for (i = 0; i < nwins; i++) - (void)client_init(wins[i], sc); + (void)client_init(wins[i], sc, (active == wins[i])); XFree(wins); } |