mirror of
https://github.com/tmux/tmux.git
synced 2025-09-03 06:17:04 +00:00
If select-layout is not given an argument, repply the last layout used in the
window, if any.
This commit is contained in:
35
layout-set.c
35
layout-set.c
@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user