gc->hidden has never consistently kept track of a group's state;

group_show() and group_hide() are not the only ways a group can change
state - if all clients in a group are either hidden or unhidden, then
that group's state should change, as well as the various EWMH ways.
Instead of trying to keep track in a wide variety of places, simply
query the clients in a group before needing to take action based on the
group's state.  Solves long standing confusion of when a group is hidden
or not.
This commit is contained in:
okan
2014-08-24 15:37:45 +00:00
parent fe533fdc8e
commit 9f36d4af35
3 changed files with 18 additions and 32 deletions

View File

@@ -204,7 +204,6 @@ struct group_ctx {
TAILQ_ENTRY(group_ctx) entry;
struct client_ctx_q clients;
int num;
int hidden;
};
TAILQ_HEAD(group_ctx_q, group_ctx);
@@ -413,7 +412,6 @@ void group_init(struct screen_ctx *);
void group_menu(struct screen_ctx *);
void group_movetogroup(struct client_ctx *, int);
void group_only(struct screen_ctx *, int);
void group_set_state(struct screen_ctx *);
void group_sticky(struct client_ctx *);
void group_sticky_toggle_enter(struct client_ctx *);
void group_sticky_toggle_exit(struct client_ctx *);