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 15fdb76df9
commit c025dc9089
4 changed files with 18 additions and 9 deletions

View File

@ -320,7 +320,7 @@ u_long client_bg_pixel(struct client_ctx *);
Pixmap client_bg_pixmap(struct client_ctx *);
void client_map(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_altrelease();
struct client_ctx *client_mrunext(struct client_ctx *cc);

View File

@ -604,14 +604,23 @@ match:
*/
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 *) =
reverse ? &client_mruprev : &client_mrunext;
/* 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 (!sc->altpersist || sc->cycle_client == NULL)
sc->cycle_client = TAILQ_FIRST(&sc->mruq);

4
conf.c
View File

@ -199,9 +199,9 @@ conf_setup(struct conf *c)
conf_bindkey(c, kbfunc_menu_search,
XK_slash, ControlMask, 0, 0);
conf_bindkey(c, kbfunc_client_cycle,
XK_Tab, Mod1Mask, KBFLAG_NEEDCLIENT, 0);
XK_Tab, Mod1Mask, 0, 0);
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,
ControlMask|Mod1Mask, KBFLAG_NEEDCLIENT, 0);
conf_bindkey(c, kbfunc_client_delete, XK_x,

View File

@ -85,15 +85,15 @@ kbfunc_menu_search(struct client_ctx *scratch, void *arg)
}
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
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