mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
Now that a group knows its screen, only pass down the group_ctx.
This commit is contained in:
parent
5b46f0f7d8
commit
a7f3f29ea9
4
calmwm.h
4
calmwm.h
@ -408,12 +408,12 @@ void group_alltoggle(struct screen_ctx *);
|
|||||||
void group_autogroup(struct client_ctx *);
|
void group_autogroup(struct client_ctx *);
|
||||||
void group_cycle(struct screen_ctx *, int);
|
void group_cycle(struct screen_ctx *, int);
|
||||||
int group_hidden_state(struct group_ctx *);
|
int group_hidden_state(struct group_ctx *);
|
||||||
void group_hide(struct screen_ctx *, struct group_ctx *);
|
void group_hide(struct group_ctx *);
|
||||||
void group_hidetoggle(struct screen_ctx *, int);
|
void group_hidetoggle(struct screen_ctx *, int);
|
||||||
void group_init(struct screen_ctx *);
|
void group_init(struct screen_ctx *);
|
||||||
void group_movetogroup(struct client_ctx *, int);
|
void group_movetogroup(struct client_ctx *, int);
|
||||||
void group_only(struct screen_ctx *, int);
|
void group_only(struct screen_ctx *, int);
|
||||||
void group_show(struct screen_ctx *, struct group_ctx *);
|
void group_show(struct group_ctx *);
|
||||||
void group_sticky(struct client_ctx *);
|
void group_sticky(struct client_ctx *);
|
||||||
void group_sticky_toggle_enter(struct client_ctx *);
|
void group_sticky_toggle_enter(struct client_ctx *);
|
||||||
void group_sticky_toggle_exit(struct client_ctx *);
|
void group_sticky_toggle_exit(struct client_ctx *);
|
||||||
|
32
group.c
32
group.c
@ -33,7 +33,7 @@
|
|||||||
#include "calmwm.h"
|
#include "calmwm.h"
|
||||||
|
|
||||||
static void group_assign(struct group_ctx *, struct client_ctx *);
|
static void group_assign(struct group_ctx *, struct client_ctx *);
|
||||||
static void group_restack(struct screen_ctx *, struct group_ctx *);
|
static void group_restack(struct group_ctx *);
|
||||||
static void group_setactive(struct screen_ctx *, long);
|
static void group_setactive(struct screen_ctx *, long);
|
||||||
|
|
||||||
const char *num_to_name[] = {
|
const char *num_to_name[] = {
|
||||||
@ -56,30 +56,30 @@ group_assign(struct group_ctx *gc, struct client_ctx *cc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
group_hide(struct screen_ctx *sc, struct group_ctx *gc)
|
group_hide(struct group_ctx *gc)
|
||||||
{
|
{
|
||||||
struct client_ctx *cc;
|
struct client_ctx *cc;
|
||||||
|
|
||||||
screen_updatestackingorder(sc);
|
screen_updatestackingorder(gc->sc);
|
||||||
|
|
||||||
TAILQ_FOREACH(cc, &gc->clients, group_entry)
|
TAILQ_FOREACH(cc, &gc->clients, group_entry)
|
||||||
client_hide(cc);
|
client_hide(cc);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
group_show(struct screen_ctx *sc, struct group_ctx *gc)
|
group_show(struct group_ctx *gc)
|
||||||
{
|
{
|
||||||
struct client_ctx *cc;
|
struct client_ctx *cc;
|
||||||
|
|
||||||
TAILQ_FOREACH(cc, &gc->clients, group_entry)
|
TAILQ_FOREACH(cc, &gc->clients, group_entry)
|
||||||
client_unhide(cc);
|
client_unhide(cc);
|
||||||
|
|
||||||
group_restack(sc, gc);
|
group_restack(gc);
|
||||||
group_setactive(sc, gc->num);
|
group_setactive(gc->sc, gc->num);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
group_restack(struct screen_ctx *sc, struct group_ctx *gc)
|
group_restack(struct group_ctx *gc)
|
||||||
{
|
{
|
||||||
struct client_ctx *cc;
|
struct client_ctx *cc;
|
||||||
Window *winlist;
|
Window *winlist;
|
||||||
@ -238,9 +238,9 @@ group_hidetoggle(struct screen_ctx *sc, int idx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (group_hidden_state(gc))
|
if (group_hidden_state(gc))
|
||||||
group_show(sc, gc);
|
group_show(gc);
|
||||||
else {
|
else {
|
||||||
group_hide(sc, gc);
|
group_hide(gc);
|
||||||
/* make clients stick to empty group */
|
/* make clients stick to empty group */
|
||||||
if (TAILQ_EMPTY(&gc->clients))
|
if (TAILQ_EMPTY(&gc->clients))
|
||||||
group_setactive(sc, idx);
|
group_setactive(sc, idx);
|
||||||
@ -257,9 +257,9 @@ group_only(struct screen_ctx *sc, int idx)
|
|||||||
|
|
||||||
TAILQ_FOREACH(gc, &sc->groupq, entry) {
|
TAILQ_FOREACH(gc, &sc->groupq, entry) {
|
||||||
if (gc->num == idx)
|
if (gc->num == idx)
|
||||||
group_show(sc, gc);
|
group_show(gc);
|
||||||
else
|
else
|
||||||
group_hide(sc, gc);
|
group_hide(gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,16 +286,16 @@ group_cycle(struct screen_ctx *sc, int flags)
|
|||||||
if (!TAILQ_EMPTY(&gc->clients) && showgroup == NULL)
|
if (!TAILQ_EMPTY(&gc->clients) && showgroup == NULL)
|
||||||
showgroup = gc;
|
showgroup = gc;
|
||||||
else if (!group_hidden_state(gc))
|
else if (!group_hidden_state(gc))
|
||||||
group_hide(sc, gc);
|
group_hide(gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showgroup == NULL)
|
if (showgroup == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
group_hide(sc, sc->group_active);
|
group_hide(sc->group_active);
|
||||||
|
|
||||||
if (group_hidden_state(showgroup))
|
if (group_hidden_state(showgroup))
|
||||||
group_show(sc, showgroup);
|
group_show(showgroup);
|
||||||
else
|
else
|
||||||
group_setactive(sc, showgroup->num);
|
group_setactive(sc, showgroup->num);
|
||||||
}
|
}
|
||||||
@ -307,9 +307,9 @@ group_alltoggle(struct screen_ctx *sc)
|
|||||||
|
|
||||||
TAILQ_FOREACH(gc, &sc->groupq, entry) {
|
TAILQ_FOREACH(gc, &sc->groupq, entry) {
|
||||||
if (sc->group_hideall)
|
if (sc->group_hideall)
|
||||||
group_show(sc, gc);
|
group_show(gc);
|
||||||
else
|
else
|
||||||
group_hide(sc, gc);
|
group_hide(gc);
|
||||||
}
|
}
|
||||||
sc->group_hideall = !sc->group_hideall;
|
sc->group_hideall = !sc->group_hideall;
|
||||||
}
|
}
|
||||||
|
@ -201,7 +201,7 @@ mousefunc_menu_group(struct client_ctx *cc, union arg *arg)
|
|||||||
NULL, NULL)) != NULL) {
|
NULL, NULL)) != NULL) {
|
||||||
gc = (struct group_ctx *)mi->ctx;
|
gc = (struct group_ctx *)mi->ctx;
|
||||||
(group_hidden_state(gc)) ?
|
(group_hidden_state(gc)) ?
|
||||||
group_show(sc, gc) : group_hide(sc, gc);
|
group_show(gc) : group_hide(gc);
|
||||||
}
|
}
|
||||||
|
|
||||||
menuq_clear(&menuq);
|
menuq_clear(&menuq);
|
||||||
|
Loading…
Reference in New Issue
Block a user