Use a similarly named check as sticky for hidden check in a group.

This commit is contained in:
okan 2014-09-17 16:32:53 +00:00
parent 49d0fee8b5
commit 05b4f3491a
3 changed files with 11 additions and 15 deletions

View File

@ -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.277 2014/09/17 16:00:44 okan Exp $
* $OpenBSD: calmwm.h,v 1.278 2014/09/17 16:32:53 okan Exp $
*/
#ifndef _CALMWM_H_
@ -406,9 +406,9 @@ void client_wm_hints(struct client_ctx *);
void group_alltoggle(struct screen_ctx *);
void group_autogroup(struct client_ctx *);
void group_cycle(struct screen_ctx *, int);
int group_hidden_state(struct group_ctx *);
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 *);
void group_movetogroup(struct client_ctx *, int);

View File

@ -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.103 2014/09/17 14:31:37 okan Exp $
* $OpenBSD: group.c,v 1.104 2014/09/17 16:32:53 okan Exp $
*/
#include <sys/param.h>
@ -170,7 +170,7 @@ group_movetogroup(struct client_ctx *cc, int idx)
if (cc->group == gc)
return;
if (group_hidden_state(gc))
if (group_holds_only_hidden(gc))
client_hide(cc);
group_assign(gc, cc);
}
@ -207,7 +207,6 @@ group_holds_only_sticky(struct group_ctx *gc)
{
struct client_ctx *cc;
/* Check if all clients in the group are 'sticky'. */
TAILQ_FOREACH(cc, &gc->clientq, group_entry) {
if (!(cc->flags & CLIENT_STICKY))
return(0);
@ -215,11 +214,8 @@ group_holds_only_sticky(struct group_ctx *gc)
return(1);
}
/*
* If all clients in a group are hidden, then the group state is hidden.
*/
int
group_hidden_state(struct group_ctx *gc)
group_holds_only_hidden(struct group_ctx *gc)
{
struct client_ctx *cc;
int hidden = 0, same = 0;
@ -250,7 +246,7 @@ group_hidetoggle(struct screen_ctx *sc, int idx)
break;
}
if (group_hidden_state(gc))
if (group_holds_only_hidden(gc))
group_show(gc);
else {
group_hide(gc);
@ -298,7 +294,7 @@ group_cycle(struct screen_ctx *sc, int flags)
if (!group_holds_only_sticky(gc) && showgroup == NULL)
showgroup = gc;
else if (!group_hidden_state(gc))
else if (!group_holds_only_hidden(gc))
group_hide(gc);
}
@ -307,7 +303,7 @@ group_cycle(struct screen_ctx *sc, int flags)
group_hide(sc->group_active);
if (group_hidden_state(showgroup))
if (group_holds_only_hidden(showgroup))
group_show(showgroup);
else
group_setactive(sc, showgroup->num);

View File

@ -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: mousefunc.c,v 1.81 2014/09/17 14:31:37 okan Exp $
* $OpenBSD: mousefunc.c,v 1.82 2014/09/17 16:32:53 okan Exp $
*/
#include <sys/param.h>
@ -191,7 +191,7 @@ mousefunc_menu_group(struct client_ctx *cc, union arg *arg)
if (group_holds_only_sticky(gc))
continue;
menuq_add(&menuq, gc,
group_hidden_state(gc) ? "%d: [%s]" : "%d: %s",
group_holds_only_hidden(gc) ? "%d: [%s]" : "%d: %s",
gc->num, gc->name);
}
if (TAILQ_EMPTY(&menuq))
@ -200,7 +200,7 @@ mousefunc_menu_group(struct client_ctx *cc, union arg *arg)
if ((mi = menu_filter(sc, &menuq, NULL, NULL, 0,
NULL, NULL)) != NULL) {
gc = (struct group_ctx *)mi->ctx;
(group_hidden_state(gc)) ?
(group_holds_only_hidden(gc)) ?
group_show(gc) : group_hide(gc);
}