mirror of
https://github.com/tmux/tmux.git
synced 2025-01-12 03:08:46 +00:00
Sync OpenBSD patchset 799:
Add other-pane-height and other-pane-width options, allowing the width or height of the smaller panes in the main-horizontal and main-vertical layouts to be set. Mostly from David Goodlad.
This commit is contained in:
parent
cd92f44686
commit
d1bdc9a161
@ -1,4 +1,4 @@
|
|||||||
/* $Id: cmd-set-option.c,v 1.101 2010-12-06 22:52:20 nicm Exp $ */
|
/* $Id: cmd-set-option.c,v 1.102 2010-12-22 15:23:59 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -159,6 +159,8 @@ const struct set_option_entry set_window_option_table[] = {
|
|||||||
{ "monitor-activity", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "monitor-activity", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
{ "monitor-content", SET_OPTION_STRING, 0, 0, NULL },
|
{ "monitor-content", SET_OPTION_STRING, 0, 0, NULL },
|
||||||
{ "monitor-silence",SET_OPTION_NUMBER, 0, INT_MAX, NULL},
|
{ "monitor-silence",SET_OPTION_NUMBER, 0, INT_MAX, NULL},
|
||||||
|
{ "other-pane-height", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
||||||
|
{ "other-pane-width", SET_OPTION_NUMBER, 0, INT_MAX, NULL },
|
||||||
{ "remain-on-exit", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "remain-on-exit", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
{ "synchronize-panes", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "synchronize-panes", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
{ "utf8", SET_OPTION_FLAG, 0, 0, NULL },
|
{ "utf8", SET_OPTION_FLAG, 0, 0, NULL },
|
||||||
|
30
layout-set.c
30
layout-set.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: layout-set.c,v 1.7 2010-12-07 20:23:21 micahcowan Exp $ */
|
/* $Id: layout-set.c,v 1.8 2010-12-22 15:23:59 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -231,8 +231,8 @@ layout_set_main_h(struct window *w)
|
|||||||
{
|
{
|
||||||
struct window_pane *wp;
|
struct window_pane *wp;
|
||||||
struct layout_cell *lc, *lcmain, *lcrow, *lcchild;
|
struct layout_cell *lc, *lcmain, *lcrow, *lcchild;
|
||||||
u_int n, mainheight, width, height, used;
|
u_int n, mainheight, otherheight, width, height;
|
||||||
u_int i, j, columns, rows, totalrows;
|
u_int used, i, j, columns, rows, totalrows;
|
||||||
|
|
||||||
layout_print_cell(w->layout_root, __func__, 1);
|
layout_print_cell(w->layout_root, __func__, 1);
|
||||||
|
|
||||||
@ -252,6 +252,16 @@ layout_set_main_h(struct window *w)
|
|||||||
|
|
||||||
/* Get the main pane height and add one for separator line. */
|
/* Get the main pane height and add one for separator line. */
|
||||||
mainheight = options_get_number(&w->options, "main-pane-height") + 1;
|
mainheight = options_get_number(&w->options, "main-pane-height") + 1;
|
||||||
|
|
||||||
|
/* Get the optional other pane height and add one for separator line. */
|
||||||
|
otherheight = options_get_number(&w->options, "other-pane-height") + 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If an other pane height was specified, honour it so long as it
|
||||||
|
* doesn't shrink the main height to less than the main-pane-height
|
||||||
|
*/
|
||||||
|
if (otherheight > 1 && w->sx - otherheight > mainheight)
|
||||||
|
mainheight = w->sx - otherheight;
|
||||||
if (mainheight < PANE_MINIMUM + 1)
|
if (mainheight < PANE_MINIMUM + 1)
|
||||||
mainheight = PANE_MINIMUM + 1;
|
mainheight = PANE_MINIMUM + 1;
|
||||||
|
|
||||||
@ -342,8 +352,8 @@ layout_set_main_v(struct window *w)
|
|||||||
{
|
{
|
||||||
struct window_pane *wp;
|
struct window_pane *wp;
|
||||||
struct layout_cell *lc, *lcmain, *lccolumn, *lcchild;
|
struct layout_cell *lc, *lcmain, *lccolumn, *lcchild;
|
||||||
u_int n, mainwidth, width, height, used;
|
u_int n, mainwidth, otherwidth, width, height;
|
||||||
u_int i, j, columns, rows, totalcolumns;
|
u_int used, i, j, columns, rows, totalcolumns;
|
||||||
|
|
||||||
layout_print_cell(w->layout_root, __func__, 1);
|
layout_print_cell(w->layout_root, __func__, 1);
|
||||||
|
|
||||||
@ -363,6 +373,16 @@ layout_set_main_v(struct window *w)
|
|||||||
|
|
||||||
/* Get the main pane width and add one for separator line. */
|
/* Get the main pane width and add one for separator line. */
|
||||||
mainwidth = options_get_number(&w->options, "main-pane-width") + 1;
|
mainwidth = options_get_number(&w->options, "main-pane-width") + 1;
|
||||||
|
|
||||||
|
/* Get the optional other pane width and add one for separator line. */
|
||||||
|
otherwidth = options_get_number(&w->options, "other-pane-width") + 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If an other pane width was specified, honour it so long as it
|
||||||
|
* doesn't shrink the main width to less than the main-pane-width
|
||||||
|
*/
|
||||||
|
if (otherwidth > 1 && w->sx - otherwidth > mainwidth)
|
||||||
|
mainwidth = w->sx - otherwidth;
|
||||||
if (mainwidth < PANE_MINIMUM + 1)
|
if (mainwidth < PANE_MINIMUM + 1)
|
||||||
mainwidth = PANE_MINIMUM + 1;
|
mainwidth = PANE_MINIMUM + 1;
|
||||||
|
|
||||||
|
21
tmux.1
21
tmux.1
@ -1,4 +1,4 @@
|
|||||||
.\" $Id: tmux.1,v 1.277 2010-12-11 18:42:20 nicm Exp $
|
.\" $Id: tmux.1,v 1.278 2010-12-22 15:23:59 tcunha Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
.\"
|
.\"
|
||||||
@ -2199,6 +2199,25 @@ Windows that have been silent for the interval are highlighted in the
|
|||||||
status line.
|
status line.
|
||||||
An interval of zero disables the monitoring.
|
An interval of zero disables the monitoring.
|
||||||
.Pp
|
.Pp
|
||||||
|
.It Ic other-pane-height Ar height
|
||||||
|
Set the height of the other panes (not the main pane) in the
|
||||||
|
.Ic main-horizontal
|
||||||
|
layout.
|
||||||
|
If this option is set to 0 (the default), it will have no effect.
|
||||||
|
If both the
|
||||||
|
.Ic main-pane-height
|
||||||
|
and
|
||||||
|
.Ic other-pane-height
|
||||||
|
options are set, the main pane will grow taller to make the other panes the
|
||||||
|
specified height, but will never shrink to do so.
|
||||||
|
.Pp
|
||||||
|
.It Ic other-pane-width Ar width
|
||||||
|
Like
|
||||||
|
.Ic other-pane-height ,
|
||||||
|
but set the width of other panes in the
|
||||||
|
.Ic main-vertical
|
||||||
|
layout.
|
||||||
|
.Pp
|
||||||
.It Xo Ic remain-on-exit
|
.It Xo Ic remain-on-exit
|
||||||
.Op Ic on | off
|
.Op Ic on | off
|
||||||
.Xc
|
.Xc
|
||||||
|
4
tmux.c
4
tmux.c
@ -1,4 +1,4 @@
|
|||||||
/* $Id: tmux.c,v 1.226 2010-12-10 21:19:13 nicm Exp $ */
|
/* $Id: tmux.c,v 1.227 2010-12-22 15:23:59 tcunha Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -410,6 +410,8 @@ main(int argc, char **argv)
|
|||||||
options_set_number(wo, "monitor-activity", 0);
|
options_set_number(wo, "monitor-activity", 0);
|
||||||
options_set_string(wo, "monitor-content", "%s", "");
|
options_set_string(wo, "monitor-content", "%s", "");
|
||||||
options_set_number(wo, "monitor-silence", 0);
|
options_set_number(wo, "monitor-silence", 0);
|
||||||
|
options_set_number(wo, "other-pane-height", 0);
|
||||||
|
options_set_number(wo, "other-pane-width", 0);
|
||||||
options_set_number(wo, "window-status-attr", 0);
|
options_set_number(wo, "window-status-attr", 0);
|
||||||
options_set_number(wo, "window-status-bg", 8);
|
options_set_number(wo, "window-status-bg", 8);
|
||||||
options_set_number(wo, "window-status-current-attr", 0);
|
options_set_number(wo, "window-status-current-attr", 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user