make it possible to cycle through the windows when non are selected.

(eg. when they're hidden, now you can cycle through them)

from aon@iki.fi
This commit is contained in:
jasper 2007-06-05 19:03:20 +00:00
parent a60196d67f
commit f1ac24d0ea
4 changed files with 22 additions and 13 deletions

View File

@ -4,7 +4,7 @@
* Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org> * Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org>
* All rights reserved. * All rights reserved.
* *
* $Id: calmwm.h,v 1.5 2007/05/28 18:34:27 jasper Exp $ * $Id: calmwm.h,v 1.6 2007/06/05 19:03:20 jasper Exp $
*/ */
#ifndef _CALMWM_H_ #ifndef _CALMWM_H_
@ -320,7 +320,7 @@ u_long client_bg_pixel(struct client_ctx *);
Pixmap client_bg_pixmap(struct client_ctx *); Pixmap client_bg_pixmap(struct client_ctx *);
void client_map(struct client_ctx *cc); void client_map(struct client_ctx *cc);
void client_mtf(struct client_ctx *cc); void client_mtf(struct client_ctx *cc);
struct client_ctx *client_cyclenext(struct client_ctx *cc, int reverse); struct client_ctx *client_cyclenext(int reverse);
void client_cycleinfo(struct client_ctx *cc); void client_cycleinfo(struct client_ctx *cc);
void client_altrelease(); void client_altrelease();
struct client_ctx *client_mrunext(struct client_ctx *cc); struct client_ctx *client_mrunext(struct client_ctx *cc);

View File

@ -4,7 +4,7 @@
* Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org> * Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org>
* All rights reserved. * All rights reserved.
* *
* $Id: client.c,v 1.4 2007/05/29 22:38:44 jasper Exp $ * $Id: client.c,v 1.5 2007/06/05 19:03:20 jasper Exp $
*/ */
#include "headers.h" #include "headers.h"
@ -604,14 +604,23 @@ match:
*/ */
struct client_ctx * struct client_ctx *
client_cyclenext(struct client_ctx *cc, int reverse) client_cyclenext(int reverse)
{ {
struct screen_ctx *sc = CCTOSC(cc); struct screen_ctx *sc;
struct client_ctx *cc;
struct client_ctx *(*iter)(struct client_ctx *) = struct client_ctx *(*iter)(struct client_ctx *) =
reverse ? &client_mruprev : &client_mrunext; reverse ? &client_mruprev : &client_mrunext;
/* TODO: maybe this should just be a CIRCLEQ. */ /* TODO: maybe this should just be a CIRCLEQ. */
if (!(cc = _curcc)) {
if (TAILQ_EMPTY(&Clientq))
return(NULL);
cc = TAILQ_FIRST(&Clientq);
}
sc = CCTOSC(cc);
/* if altheld; then reset the iterator to the beginning */ /* if altheld; then reset the iterator to the beginning */
if (!sc->altpersist || sc->cycle_client == NULL) if (!sc->altpersist || sc->cycle_client == NULL)
sc->cycle_client = TAILQ_FIRST(&sc->mruq); sc->cycle_client = TAILQ_FIRST(&sc->mruq);

View File

@ -4,7 +4,7 @@
* Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org> * Copyright (c) 2004 Marius Aamodt Eriksen <marius@monkey.org>
* All rights reserved. * All rights reserved.
* *
* $Id: conf.c,v 1.5 2007/05/28 21:11:39 jasper Exp $ * $Id: conf.c,v 1.6 2007/06/05 19:03:20 jasper Exp $
*/ */
#include "headers.h" #include "headers.h"
@ -199,9 +199,9 @@ conf_setup(struct conf *c)
conf_bindkey(c, kbfunc_menu_search, conf_bindkey(c, kbfunc_menu_search,
XK_slash, ControlMask, 0, 0); XK_slash, ControlMask, 0, 0);
conf_bindkey(c, kbfunc_client_cycle, conf_bindkey(c, kbfunc_client_cycle,
XK_Tab, Mod1Mask, KBFLAG_NEEDCLIENT, 0); XK_Tab, Mod1Mask, 0, 0);
conf_bindkey(c, kbfunc_client_rcycle, conf_bindkey(c, kbfunc_client_rcycle,
XK_Tab, Mod1Mask|ShiftMask, KBFLAG_NEEDCLIENT, 0); XK_Tab, Mod1Mask|ShiftMask, 0, 0);
conf_bindkey(c, kbfunc_client_label, XK_l, conf_bindkey(c, kbfunc_client_label, XK_l,
ControlMask|Mod1Mask, KBFLAG_NEEDCLIENT, 0); ControlMask|Mod1Mask, KBFLAG_NEEDCLIENT, 0);
conf_bindkey(c, kbfunc_client_delete, XK_x, conf_bindkey(c, kbfunc_client_delete, XK_x,

View File

@ -4,7 +4,7 @@
* Copyright (c) 2004 Martin Murray <mmurray@monkey.org> * Copyright (c) 2004 Martin Murray <mmurray@monkey.org>
* All rights reserved. * All rights reserved.
* *
* $Id: kbfunc.c,v 1.3 2007/05/28 18:34:27 jasper Exp $ * $Id: kbfunc.c,v 1.4 2007/06/05 19:03:20 jasper Exp $
*/ */
#include "headers.h" #include "headers.h"
@ -85,15 +85,15 @@ kbfunc_menu_search(struct client_ctx *scratch, void *arg)
} }
void void
kbfunc_client_cycle(struct client_ctx *cc, void *arg) kbfunc_client_cycle(struct client_ctx *scratch, void *arg)
{ {
client_cyclenext(cc, 0); client_cyclenext(0);
} }
void void
kbfunc_client_rcycle(struct client_ctx *cc, void *arg) kbfunc_client_rcycle(struct client_ctx *scratch, void *arg)
{ {
client_cyclenext(cc, 1); client_cyclenext(1);
} }
void void