From 647ee7a24a435b91d26f1f2f7a9a1f199e87a7ee Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 28 Feb 2019 23:20:52 +0000 Subject: Ensure we don't action on the last group when the requested one is not found. --- group.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'group.c') diff --git a/group.c b/group.c index af7ceaf..06e73eb 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.130 2019/02/28 13:11:53 okan Exp $ + * $OpenBSD: group.c,v 1.131 2019/02/28 23:20:52 okan Exp $ */ #include @@ -160,15 +160,14 @@ group_movetogroup(struct client_ctx *cc, int idx) return; TAILQ_FOREACH(gc, &sc->groupq, entry) { - if (gc->num == idx) - break; + if (gc->num == idx) { + if (cc->gc == gc) + return; + if (gc->num != 0 && group_holds_only_hidden(gc)) + client_hide(cc); + group_assign(gc, cc); + } } - - if (cc->gc == gc) - return; - if (gc->num != 0 && group_holds_only_hidden(gc)) - client_hide(cc); - group_assign(gc, cc); } void @@ -221,17 +220,16 @@ group_hidetoggle(struct screen_ctx *sc, int idx) return; TAILQ_FOREACH(gc, &sc->groupq, entry) { - if (gc->num == idx) - break; - } - - if (group_holds_only_hidden(gc)) - group_show(gc); - else { - group_hide(gc); - /* make clients stick to empty group */ - if (TAILQ_EMPTY(&gc->clientq)) - group_setactive(gc); + if (gc->num == idx) { + if (group_holds_only_hidden(gc)) + group_show(gc); + else { + group_hide(gc); + /* make clients stick to empty group */ + if (TAILQ_EMPTY(&gc->clientq)) + group_setactive(gc); + } + } } } -- cgit v1.2.3-2-gb3c3