diff options
author | oga | 2008-07-22 20:51:54 +0000 |
---|---|---|
committer | oga | 2008-07-22 20:51:54 +0000 |
commit | 67b8780562e9d846a7ca5912fb0bd385c7ae5da5 (patch) | |
tree | 67a153c78242f8f0dd51a27877a8ff4002997ef4 /calmwm.c | |
parent | d9557dba0d766f3d73131ca49b6409491684730e (diff) | |
download | cwm-67b8780562e9d846a7ca5912fb0bd385c7ae5da5.tar.gz |
We've been handling grabbing wrong all this time (noticed at c2k8).
add conf_grab() and conf_ungrab, and use them in the keybinding manipulation
functions to {,un}grab the binding for all screens we have defined.
the lovely little ordering problem comes in here, since when we parse
the config initially Screenq is empty, so regrab after we fill the
queue, hopefully later reordering will remove this little need and there
will be much rejoicing.
ok okan.
Diffstat (limited to '')
-rw-r--r-- | calmwm.c | 15 |
1 files changed, 10 insertions, 5 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.25 2008/07/22 20:42:24 oga Exp $ + * $Id: calmwm.c,v 1.26 2008/07/22 20:51:54 oga Exp $ */ #include "headers.h" @@ -127,6 +127,7 @@ void x_setup(void) { struct screen_ctx *sc; + struct keybinding *kb; int i; Nscreens = ScreenCount(X_Dpy); @@ -136,6 +137,14 @@ x_setup(void) TAILQ_INSERT_TAIL(&Screenq, sc, entry); } + /* + * XXX key grabs weren't done before, since Screenq was empty, + * do them here for now (this needs changing). + */ + TAILQ_FOREACH(kb, &Conf.keybindingq, entry) + conf_grab(&Conf, kb); + + Cursor_move = XCreateFontCursor(X_Dpy, XC_fleur); Cursor_resize = XCreateFontCursor(X_Dpy, XC_bottom_right_corner); Cursor_select = XCreateFontCursor(X_Dpy, XC_hand1); @@ -151,7 +160,6 @@ x_setupscreen(struct screen_ctx *sc, u_int which) Window *wins, w0, w1; XWindowAttributes winattr; XSetWindowAttributes rootattr; - struct keybinding *kb; u_int nwins, i; Curscreen = sc; @@ -178,9 +186,6 @@ x_setupscreen(struct screen_ctx *sc, u_int which) XAllocNamedColor(X_Dpy, DefaultColormap(X_Dpy, which), "black", &sc->blackcolor, &tmp); - TAILQ_FOREACH(kb, &Conf.keybindingq, entry) - xu_key_grab(sc->rootwin, kb->modmask, kb->keysym); - sc->blackpixl = BlackPixel(X_Dpy, sc->which); sc->whitepixl = WhitePixel(X_Dpy, sc->which); sc->bluepixl = sc->fccolor.pixel; |