diff options
-rw-r--r-- | group.c | 11 |
1 files changed, 4 insertions, 7 deletions
@@ -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.117 2015/08/25 19:52:02 okan Exp $ + * $OpenBSD: group.c,v 1.118 2015/08/25 20:35:49 okan Exp $ */ #include <sys/types.h> @@ -331,20 +331,17 @@ group_restore(struct client_ctx *cc) { struct screen_ctx *sc = cc->sc; struct group_ctx *gc; - int num = -1; + int num; long *grpnum; if (xu_getprop(cc->win, ewmh[_NET_WM_DESKTOP], XA_CARDINAL, 1L, (unsigned char **)&grpnum) <= 0) return(0); - num = MIN(*grpnum, (CALMWM_NGROUPS - 1)); + num = (*grpnum == -1) ? 0 : *grpnum; + num = MIN(num, (CALMWM_NGROUPS - 1)); XFree(grpnum); - if (num == -1) { - group_assign(NULL, cc); - return(1); - } TAILQ_FOREACH(gc, &sc->groupq, entry) { if (gc->num == num) { group_assign(gc, cc); |