From adc8c1f0f79042f952d99bdbf88392009a688abc Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 29 Dec 2011 20:48:38 +0000 Subject: check if we're in the group already, else multiple calls to group_movetogroup() on one client will still increment nhidden if the group is hidden. found the hard way by Thomas Jeunet and fix from Alexander Polakov - thanks to both! ok oga@ --- group.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'group.c') diff --git a/group.c b/group.c index a38a005..17de904 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.54 2011/10/12 15:43:50 okan Exp $ + * $OpenBSD: group.c,v 1.55 2011/12/29 20:48:38 okan Exp $ */ #include @@ -222,11 +222,13 @@ group_movetogroup(struct client_ctx *cc, int idx) err(1, "group_movetogroup: index out of range (%d)", idx); gc = &sc->groups[idx]; + if (cc->group == gc) + return; if (gc->hidden) { client_hide(cc); gc->nhidden++; } - group_add(&sc->groups[idx], cc); + group_add(gc, cc); } /* -- cgit v1.2.3-2-gb3c3