From e1d11722a750db804d9c601e9bf771ec5b8ec868 Mon Sep 17 00:00:00 2001 From: okan Date: Fri, 1 Mar 2019 14:32:01 +0000 Subject: Tie group number and name together during config. --- calmwm.h | 5 +++-- conf.c | 30 ++++++++++++++++++++++++++++-- group.c | 11 +++-------- screen.c | 7 ++----- 4 files changed, 36 insertions(+), 17 deletions(-) diff --git a/calmwm.h b/calmwm.h index b9e002f..00398cb 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.365 2019/02/28 13:11:53 okan Exp $ + * $OpenBSD: calmwm.h,v 1.366 2019/03/01 14:32:01 okan Exp $ */ #ifndef _CALMWM_H_ @@ -447,7 +447,7 @@ void group_hide(struct group_ctx *); void group_hidetoggle(struct screen_ctx *, int); int group_holds_only_hidden(struct group_ctx *); int group_holds_only_sticky(struct group_ctx *); -void group_init(struct screen_ctx *, int); +void group_init(struct screen_ctx *, int, const char *); void group_movetogroup(struct client_ctx *, int); void group_only(struct screen_ctx *, int); void group_close(struct screen_ctx *, int); @@ -555,6 +555,7 @@ void conf_grab_mouse(Window); void conf_init(struct conf *); void conf_ignore(struct conf *, const char *); void conf_screen(struct screen_ctx *); +void conf_group(struct screen_ctx *); void xev_process(void); diff --git a/conf.c b/conf.c index 2d3f931..e1ff8b9 100644 --- a/conf.c +++ b/conf.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: conf.c,v 1.245 2019/02/25 16:40:49 okan Exp $ + * $OpenBSD: conf.c,v 1.246 2019/03/01 14:32:01 okan Exp $ */ #include @@ -36,6 +36,21 @@ static const char *conf_bind_getmask(const char *, unsigned int *); static void conf_unbind_key(struct conf *, struct bind_ctx *); static void conf_unbind_mouse(struct conf *, struct bind_ctx *); +static const struct { + int num; + const char *name; +} group_binds[] = { + { 0, "nogroup" }, + { 1, "one" }, + { 2, "two" }, + { 3, "three" }, + { 4, "four" }, + { 5, "five" }, + { 6, "six" }, + { 7, "seven" }, + { 8, "eight" }, + { 9, "nine" }, +}; static int cursor_binds[] = { XC_left_ptr, /* CF_NORMAL */ XC_fleur, /* CF_MOVE */ @@ -266,7 +281,7 @@ conf_init(struct conf *c) c->bwidth = 1; c->mamount = 1; c->snapdist = 0; - c->ngroups = 10; + c->ngroups = 0; c->nameqlen = 5; TAILQ_INIT(&c->ignoreq); @@ -502,6 +517,17 @@ conf_screen(struct screen_ctx *sc) conf_grab_kbd(sc->rootwin); } +void +conf_group(struct screen_ctx *sc) +{ + unsigned int i; + + for (i = 0; i < nitems(group_binds); i++) { + group_init(sc, group_binds[i].num, group_binds[i].name); + Conf.ngroups++; + } +} + static const char * conf_bind_getmask(const char *name, unsigned int *mask) { diff --git a/group.c b/group.c index c51bf51..289c294 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.132 2019/02/28 23:26:12 okan Exp $ + * $OpenBSD: group.c,v 1.133 2019/03/01 14:32:01 okan Exp $ */ #include @@ -37,11 +37,6 @@ static struct group_ctx *group_prev(struct group_ctx *); static void group_restack(struct group_ctx *); static void group_setactive(struct group_ctx *); -const char *num_to_name[] = { - "nogroup", "one", "two", "three", "four", "five", "six", - "seven", "eight", "nine" -}; - void group_assign(struct group_ctx *gc, struct client_ctx *cc) { @@ -124,13 +119,13 @@ group_restack(struct group_ctx *gc) } void -group_init(struct screen_ctx *sc, int num) +group_init(struct screen_ctx *sc, int num, const char *name) { struct group_ctx *gc; gc = xmalloc(sizeof(*gc)); gc->sc = sc; - gc->name = xstrdup(num_to_name[num]); + gc->name = xstrdup(name); gc->num = num; TAILQ_INIT(&gc->clientq); diff --git a/screen.c b/screen.c index 59249e6..e514e29 100644 --- a/screen.c +++ b/screen.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: screen.c,v 1.88 2018/02/13 15:43:16 okan Exp $ + * $OpenBSD: screen.c,v 1.89 2019/03/01 14:32:01 okan Exp $ */ #include @@ -40,7 +40,6 @@ screen_init(int which) Window *wins, w0, w1, active = None; XSetWindowAttributes rootattr; unsigned int nwins, w; - int i; sc = xmalloc(sizeof(*sc)); @@ -61,9 +60,7 @@ screen_init(int which) xu_ewmh_net_supported_wm_check(sc); screen_update_geometry(sc); - - for (i = 0; i < Conf.ngroups; i++) - group_init(sc, i); + conf_group(sc); xu_ewmh_net_desktop_names(sc); xu_ewmh_net_wm_desktop_viewport(sc); -- cgit v1.2.3-2-gb3c3