diff options
author | okan | 2016-09-20 18:21:32 +0000 |
---|---|---|
committer | okan | 2016-09-20 18:21:32 +0000 |
commit | 3f20ee980685f849ca7802b857736d819bff063a (patch) | |
tree | 73775bfed69756ab375e094fd872da3e0accc6a1 | |
parent | 86e2c481f56ad0ea549838666d9fda03519fe1ef (diff) | |
download | cwm-3f20ee980685f849ca7802b857736d819bff063a.tar.gz |
Get rid of curcc, instead cycle through the queue; removes the need for
client_none().
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | client.c | 34 |
2 files changed, 15 insertions, 23 deletions
@@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.21 2015/06/26 15:21:58 okan Exp $ +# $OpenBSD: Makefile,v 1.22 2016/09/20 18:21:32 okan Exp $ .include <bsd.xconf.mk> @@ -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 @@ -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: client.c,v 1.222 2016/09/16 14:32:02 okan Exp $ + * $OpenBSD: client.c,v 1.223 2016/09/20 18:21:32 okan Exp $ */ #include <sys/types.h> @@ -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; |