diff --git a/calmwm.h b/calmwm.h index 07e223c..e888bac 100644 --- a/calmwm.h +++ b/calmwm.h @@ -511,7 +511,7 @@ void conf_screen(struct screen_ctx *); void xev_loop(void); void xu_btn_grab(Window, int, u_int); -void xu_btn_ungrab(Window, int, u_int); +void xu_btn_ungrab(Window); int xu_getprop(Window, Atom, Atom, long, unsigned char **); int xu_get_wm_state(Window, int *); int xu_getstrprop(Window, Atom, char **); diff --git a/client.c b/client.c index 0733f88..cd0732f 100644 --- a/client.c +++ b/client.c @@ -186,15 +186,10 @@ client_delete(struct client_ctx *cc) void client_leave(struct client_ctx *cc) { - struct screen_ctx *sc; - if (cc == NULL) cc = client_current(); if (cc == NULL) return; - - sc = cc->sc; - xu_btn_ungrab(sc->rootwin, AnyModifier, Button1); } void diff --git a/conf.c b/conf.c index ea657f1..ce3ee1e 100644 --- a/conf.c +++ b/conf.c @@ -649,6 +649,8 @@ conf_grab_mouse(Window win) { struct mousebinding *mb; + xu_btn_ungrab(win); + TAILQ_FOREACH(mb, &Conf.mousebindingq, entry) { if (mb->flags != MOUSEBIND_CTX_WIN) continue; diff --git a/xutil.c b/xutil.c index 543b8b0..f33fa9a 100644 --- a/xutil.c +++ b/xutil.c @@ -65,12 +65,9 @@ xu_btn_grab(Window win, int mask, u_int btn) } void -xu_btn_ungrab(Window win, int mask, u_int btn) +xu_btn_ungrab(Window win) { - u_int i; - - for (i = 0; i < nitems(ign_mods); i++) - XUngrabButton(X_Dpy, btn, (mask | ign_mods[i]), win); + XUngrabButton(X_Dpy, AnyButton, AnyModifier, win); } void