diff options
author | okan <okan> | 2016-09-20 18:21:32 +0000 |
---|---|---|
committer | okan <okan> | 2016-09-20 18:21:32 +0000 |
commit | 9cf31746965729f6ea8289849f08fe7a8b825555 (patch) | |
tree | 5a8cd732ea8042f5f06f2a140b173d7c54666cf8 | |
parent | 6a53e3a859cd55b6f01ecb2a8a8a30af5d940345 (diff) | |
download | cwm-9cf31746965729f6ea8289849f08fe7a8b825555.tar.gz cwm-9cf31746965729f6ea8289849f08fe7a8b825555.tar.xz cwm-9cf31746965729f6ea8289849f08fe7a8b825555.zip |
Get rid of curcc, instead cycle through the queue; removes the need for
client_none().
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | client.c | 32 |
2 files changed, 13 insertions, 21 deletions
diff --git a/Makefile b/Makefile index f00441b..879ccdf 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ SRCS= calmwm.c screen.c xmalloc.c client.c menu.c \ CPPFLAGS+= -I${X11BASE}/include -I${X11BASE}/include/freetype2 -I${.CURDIR} -CFLAGS+= -Wall +CFLAGS+= -Wall -g LDADD+= -L${X11BASE}/lib -lXft -lXrender -lX11 -lxcb -lXau -lXdmcp \ -lfontconfig -lexpat -lfreetype -lz -lXrandr -lXext diff --git a/client.c b/client.c index d42391b..8ccf033 100644 --- a/client.c +++ b/client.c @@ -34,14 +34,11 @@ static struct client_ctx *client_next(struct client_ctx *); static struct client_ctx *client_prev(struct client_ctx *); static void client_mtf(struct client_ctx *); -static void client_none(struct screen_ctx *); static void client_placecalc(struct client_ctx *); static void client_wm_protocols(struct client_ctx *); static void client_mwm_hints(struct client_ctx *); static int client_inbound(struct client_ctx *, int, int); -struct client_ctx *curcc = NULL; - struct client_ctx * client_init(Window win, struct screen_ctx *sc, int active) { @@ -178,7 +175,7 @@ client_delete(struct client_ctx *cc) xu_ewmh_net_client_list_stacking(sc); if (cc->flags & CLIENT_ACTIVE) - client_none(sc); + xu_ewmh_net_active_window(sc, None); if (cc->gc != NULL) TAILQ_REMOVE(&cc->gc->clientq, cc, group_entry); @@ -227,7 +224,6 @@ client_setactive(struct client_ctx *cc) if (!sc->cycling) client_mtf(cc); - curcc = cc; cc->flags |= CLIENT_ACTIVE; cc->flags &= ~CLIENT_URGENCY; client_draw_border(cc); @@ -235,23 +231,19 @@ client_setactive(struct client_ctx *cc) xu_ewmh_net_active_window(sc, cc->win); } -/* - * set when there is no active client - */ -static void -client_none(struct screen_ctx *sc) -{ - Window none = None; - - xu_ewmh_net_active_window(sc, none); - - curcc = NULL; -} - struct client_ctx * client_current(void) { - return(curcc); + struct screen_ctx *sc; + struct client_ctx *cc; + + TAILQ_FOREACH(sc, &Screenq, entry) { + TAILQ_FOREACH(cc, &sc->clientq, entry) { + if (cc->flags & CLIENT_ACTIVE) + return(cc); + } + } + return(NULL); } void @@ -512,7 +504,7 @@ client_hide(struct client_ctx *cc) XUnmapWindow(X_Dpy, cc->win); if (cc->flags & CLIENT_ACTIVE) - client_none(cc->sc); + xu_ewmh_net_active_window(cc->sc, None); cc->flags &= ~CLIENT_ACTIVE; cc->flags |= CLIENT_HIDDEN; |