If select-layout is not given an argument, repply the last layout used in the

window, if any.
This commit is contained in:
Nicholas Marriott
2009-07-28 06:48:44 +00:00
parent 309b76fb32
commit 2da4864483
6 changed files with 42 additions and 24 deletions

View File

@ -74,36 +74,47 @@ layout_set_select(struct window *w, u_int layout)
if (layout_sets[layout].arrange != NULL)
layout_sets[layout].arrange(w);
w->layout = layout;
w->lastlayout = layout;
return (layout);
}
u_int
layout_set_next(struct window *w)
{
u_int layout = w->layout;
u_int layout;
if (w->lastlayout == -1)
layout = 0;
else {
layout = w->lastlayout + 1;
if (layout > nitems(layout_sets) - 1)
layout = 0;
}
if (layout_sets[layout].arrange != NULL)
layout_sets[layout].arrange(w);
w->layout++;
if (w->layout > nitems(layout_sets) - 1)
w->layout = 0;
w->lastlayout = layout;
return (layout);
}
u_int
layout_set_previous(struct window *w)
{
u_int layout = w->layout;
u_int layout;
if (w->lastlayout == -1)
layout = nitems(layout_sets) - 1;
else {
layout = w->lastlayout;
if (layout == 0)
layout = nitems(layout_sets) - 1;
else
layout--;
}
if (layout_sets[layout].arrange != NULL)
layout_sets[layout].arrange(w);
if (w->layout == 0)
w->layout = nitems(layout_sets) - 1;
else
w->layout--;
w->lastlayout = layout;
return (layout);
}