From 04e1c4d4ec08c96fbc13dfb72f061b1845f9b785 Mon Sep 17 00:00:00 2001 From: okan Date: Tue, 1 Jan 2013 14:19:56 +0000 Subject: make num of groups no longer off-by-one; from Alexander Polakov note that a re-exec of cwm will not rewrite the group number atom of *existing* clients, so they will remain off-by-one until each client has its atom updated, or of course a restart of X. --- calmwm.h | 6 ++---- client.c | 4 ++-- group.c | 12 ++++++------ kbfunc.c | 8 ++++---- xutil.c | 4 ++-- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/calmwm.h b/calmwm.h index 3b26df3..c5476d5 100644 --- a/calmwm.h +++ b/calmwm.h @@ -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. * - * $OpenBSD: calmwm.h,v 1.179 2012/12/19 15:21:34 okan Exp $ + * $OpenBSD: calmwm.h,v 1.180 2013/01/01 14:19:56 okan Exp $ */ #ifndef _CALMWM_H_ @@ -74,8 +74,6 @@ #define CWM_MENU_DUMMY 0x0001 #define CWM_MENU_FILE 0x0002 -#define KBTOGROUP(X) ((X) - 1) - union arg { char *c; int i; @@ -222,7 +220,7 @@ struct screen_ctx { XftFont *xftfont; int xinerama_no; XineramaScreenInfo *xinerama; -#define CALMWM_NGROUPS 9 +#define CALMWM_NGROUPS 10 struct group_ctx groups[CALMWM_NGROUPS]; struct group_ctx_q groupq; int group_hideall; diff --git a/client.c b/client.c index 1dd246d..3e52b5c 100644 --- a/client.c +++ b/client.c @@ -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. * - * $OpenBSD: client.c,v 1.107 2012/12/17 18:35:26 okan Exp $ + * $OpenBSD: client.c,v 1.108 2013/01/01 14:19:56 okan Exp $ */ #include @@ -876,7 +876,7 @@ client_transient(struct client_ctx *cc) if (XGetTransientForHint(X_Dpy, cc->win, &trans)) { if ((tc = client_find(trans)) && tc->group) { - group_movetogroup(cc, tc->group->shortcut - 1); + group_movetogroup(cc, tc->group->shortcut); if (tc->flags & CLIENT_IGNORE) cc->flags |= CLIENT_IGNORE; } diff --git a/group.c b/group.c index 35e0574..99d6722 100644 --- a/group.c +++ b/group.c @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: group.c,v 1.66 2012/12/17 17:48:57 okan Exp $ + * $OpenBSD: group.c,v 1.67 2013/01/01 14:19:56 okan Exp $ */ #include @@ -132,7 +132,7 @@ group_show(struct screen_ctx *sc, struct group_ctx *gc) free(winlist); gc->hidden = 0; - group_setactive(sc, gc->shortcut - 1); + group_setactive(sc, gc->shortcut); } void @@ -151,7 +151,7 @@ group_init(struct screen_ctx *sc) for (i = 0; i < CALMWM_NGROUPS; i++) { TAILQ_INIT(&sc->groups[i].clients); sc->groups[i].hidden = 0; - sc->groups[i].shortcut = i + 1; + sc->groups[i].shortcut = i; TAILQ_INSERT_TAIL(&sc->groupq, &sc->groups[i], entry); } @@ -327,7 +327,7 @@ group_cycle(struct screen_ctx *sc, int flags) if (showgroup->hidden) group_show(sc, showgroup); else - group_setactive(sc, showgroup->shortcut - 1); + group_setactive(sc, showgroup->shortcut); } /* called when a client is deleted */ @@ -420,7 +420,7 @@ group_autogroup(struct client_ctx *cc) else if (*grpno > CALMWM_NGROUPS || *grpno < 0) no = CALMWM_NGROUPS - 1; else - no = *grpno + 1; + no = *grpno; XFree(grpno); } else { TAILQ_FOREACH(aw, &Conf.autogroupq, entry) { @@ -480,7 +480,7 @@ group_update_names(struct screen_ctx *sc) */ if (n < CALMWM_NGROUPS) { setnames = 1; - i = 1; + i = 0; while (n < CALMWM_NGROUPS) strings[n++] = xstrdup(shortcut_to_name[i++]); } diff --git a/kbfunc.c b/kbfunc.c index 6300527..47956c5 100644 --- a/kbfunc.c +++ b/kbfunc.c @@ -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. * - * $OpenBSD: kbfunc.c,v 1.71 2012/12/17 23:54:57 okan Exp $ + * $OpenBSD: kbfunc.c,v 1.72 2013/01/01 14:19:56 okan Exp $ */ #include @@ -406,13 +406,13 @@ kbfunc_client_delete(struct client_ctx *cc, union arg *arg) void kbfunc_client_group(struct client_ctx *cc, union arg *arg) { - group_hidetoggle(cc->sc, KBTOGROUP(arg->i)); + group_hidetoggle(cc->sc, arg->i); } void kbfunc_client_grouponly(struct client_ctx *cc, union arg *arg) { - group_only(cc->sc, KBTOGROUP(arg->i)); + group_only(cc->sc, arg->i); } void @@ -440,7 +440,7 @@ kbfunc_client_grouptoggle(struct client_ctx *cc, union arg *arg) void kbfunc_client_movetogroup(struct client_ctx *cc, union arg *arg) { - group_movetogroup(cc, KBTOGROUP(arg->i)); + group_movetogroup(cc, arg->i); } void diff --git a/xutil.c b/xutil.c index cdb7321..954b397 100644 --- a/xutil.c +++ b/xutil.c @@ -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. * - * $OpenBSD: xutil.c,v 1.51 2012/12/17 18:34:06 okan Exp $ + * $OpenBSD: xutil.c,v 1.52 2013/01/01 14:19:56 okan Exp $ */ #include @@ -411,7 +411,7 @@ xu_ewmh_net_wm_desktop(struct client_ctx *cc) long no = 0xffffffff; if (gc) - no = gc->shortcut - 1; + no = gc->shortcut; XChangeProperty(X_Dpy, cc->win, ewmh[_NET_WM_DESKTOP].atom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&no, 1); -- cgit v1.2.3-2-gb3c3