diff --git a/calmwm.c b/calmwm.c index e9b3902..f2dff49 100644 --- a/calmwm.c +++ b/calmwm.c @@ -144,7 +144,6 @@ dpy_init(const char *dpyname) static void x_setup(void) { - struct keybinding *kb; int i; Cursor_default = XCreateFontCursor(X_Dpy, XC_X_cursor); @@ -155,13 +154,6 @@ x_setup(void) for (i = 0; i < ScreenCount(X_Dpy); i++) screen_init(i); - - /* - * 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); } static void diff --git a/conf.c b/conf.c index 0afc11d..b3c5210 100644 --- a/conf.c +++ b/conf.c @@ -98,8 +98,9 @@ static char *color_binds[CWM_COLOR_MAX] = { void conf_screen(struct screen_ctx *sc) { - int i; - XftColor xc; + struct keybinding *kb; + int i; + XftColor xc; sc->gap = Conf.gap; @@ -139,6 +140,9 @@ conf_screen(struct screen_ctx *sc) sc->visual, sc->colormap); if (sc->xftdraw == NULL) errx(1, "XftDrawCreate"); + + TAILQ_FOREACH(kb, &Conf.keybindingq, entry) + xu_key_grab(sc->rootwin, kb->modmask, kb->keysym); } static struct {