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:
2
calmwm.h
2
calmwm.h
@@ -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 *);
|
||||
|
||||
Reference in New Issue
Block a user