diff options
author | oga | 2010-04-12 16:17:46 +0000 |
---|---|---|
committer | oga | 2010-04-12 16:17:46 +0000 |
commit | 282d00dd063bedb53871f1b8a3dd09c3d4edc55f (patch) | |
tree | aa1b9e6a8a07a2d2f2256b3b33ad96e8e134ad5e | |
parent | 9e65d6521af3fcd684942c774a2e30e1ad40b8bd (diff) | |
download | cwm-282d00dd063bedb53871f1b8a3dd09c3d4edc55f.tar.gz |
grab events on the root window *before* we look for existing windows.
This closes a race we were hitting often where stuff started right
before cwm may not get noticed and not have borders.
ok okan@. Prompted by something todd noticed.
-rw-r--r-- | calmwm.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: calmwm.c,v 1.52 2010/01/27 03:04:50 okan Exp $ + * $Id: calmwm.c,v 1.53 2010/04/12 16:17:46 oga Exp $ */ #include <sys/param.h> @@ -176,6 +176,12 @@ x_setupscreen(struct screen_ctx *sc, u_int which) xu_setwmname(sc); + rootattr.event_mask = ChildMask|PropertyChangeMask|EnterWindowMask| + LeaveWindowMask|ColormapChangeMask|ButtonMask; + + XChangeWindowAttributes(X_Dpy, sc->rootwin, + CWEventMask, &rootattr); + /* Deal with existing clients. */ XQueryTree(X_Dpy, sc->rootwin, &w0, &w1, &wins, &nwins); @@ -190,12 +196,6 @@ x_setupscreen(struct screen_ctx *sc, u_int which) screen_updatestackingorder(sc); - rootattr.event_mask = ChildMask|PropertyChangeMask|EnterWindowMask| - LeaveWindowMask|ColormapChangeMask|ButtonMask; - - XChangeWindowAttributes(X_Dpy, sc->rootwin, - CWEventMask, &rootattr); - if (XineramaQueryExtension(X_Dpy, &fake, &fake) == 1 && ((HasXinerama = XineramaIsActive(X_Dpy)) == 1)) HasXinerama = 1; |