Allowing sending a valid 'nogroup' (0) group_ctx to group_assign()

(since we init all groups), though assigning the client's group to NULL
for 'sticky'; use this simplification in a few places (others to
follow).
This commit is contained in:
okan 2015-08-25 19:49:19 +00:00
parent 96262a6b0c
commit cb60a4b917

11
group.c
View File

@ -48,6 +48,9 @@ group_assign(struct group_ctx *gc, struct client_ctx *cc)
if (cc->group != NULL)
TAILQ_REMOVE(&cc->group->clientq, cc, group_entry);
if ((gc != NULL) && (gc->num == 0))
gc = NULL;
cc->group = gc;
if (cc->group != NULL)
@ -129,6 +132,8 @@ group_init(struct screen_ctx *sc, int num)
gc->num = num;
TAILQ_INIT(&gc->clientq);
fprintf(stderr, "%d: %s\n", gc->num, gc->name);
TAILQ_INSERT_TAIL(&sc->groupq, gc, entry);
if (num == 1)
@ -338,7 +343,7 @@ group_restore(struct client_ctx *cc)
num = MIN(*grpnum, (CALMWM_NGROUPS - 1));
XFree(grpnum);
if ((num == -1) || (num == 0)) {
if (num == -1) {
group_assign(NULL, cc);
return(1);
}
@ -373,10 +378,6 @@ group_autogroup(struct client_ctx *cc)
}
}
if (num == 0) {
group_assign(NULL, cc);
return(1);
}
TAILQ_FOREACH(gc, &sc->groupq, entry) {
if (gc->num == num) {
group_assign(gc, cc);