as done with cycle/rcycle, make prev/next group switching one kbfuncs

and use a flag; adjusted to match and rename to {r,}cycle.

"ok, since i came up with the same thing" oga@
This commit is contained in:
okan
2008-05-19 17:11:19 +00:00
parent 43d6e147c2
commit d347aa3d9a
5 changed files with 21 additions and 28 deletions

15
group.c
View File

@ -195,15 +195,11 @@ group_hidetoggle(int idx)
}
}
#define GROUP_NEXT(gc, fwd) (fwd) ? \
TAILQ_NEXT(gc, entry) : TAILQ_PREV(gc, group_ctx_q, entry)
/*
* Jump to the next/previous active group. If none exist, then just
* stay put.
* Cycle through active groups. If none exist, then just stay put.
*/
void
group_slide(int fwd)
group_cycle(int reverse)
{
struct group_ctx *gc, *showgroup = NULL;
@ -211,10 +207,11 @@ group_slide(int fwd)
gc = Group_active;
for (;;) {
gc = GROUP_NEXT(gc, fwd);
gc = reverse ? TAILQ_PREV(gc, group_ctx_q, entry) :
TAILQ_NEXT(gc, entry);
if (gc == NULL)
gc = fwd ? TAILQ_FIRST(&Groupq) :
TAILQ_LAST(&Groupq, group_ctx_q);
gc = reverse ? TAILQ_LAST(&Groupq, group_ctx_q) :
TAILQ_FIRST(&Groupq);
if (gc == Group_active)
break;