History log of /openbsd-src/usr.bin/tmux/resize.c (Results 26 – 50 of 52)
Revision Date Author Comments
# 7b470e93 18-Oct-2018 nicm <nicm@openbsd.org>

Support for windows larger than visible on the attached client. This has
been a limitation for a long time.

There are two new options, window-size and default-size, and a new
command, resize-window.

Support for windows larger than visible on the attached client. This has
been a limitation for a long time.

There are two new options, window-size and default-size, and a new
command, resize-window. The force-width and force-height options and the
session_width and session_height formats have been removed.

The new window-size option tells tmux how to work out the size of
windows: largest means it picks the size of the largest session,
smallest the smallest session (similar to the old behaviour) and manual
means that it does not automatically resize windows. The default is
currently largest but this may change. aggressive-resize modifies the
choice of session for largest and smallest as it did before.

If a window is in a session attached to a client that is too small, only
part of the window is shown. tmux attempts to keep the cursor visible,
so the part of the window displayed is changed as the cursor moves (with
a small delay, to try and avoid excess redrawing when applications
redraw status lines or similar that are not currently visible). The
offset of the visible portion of the window is shown in status-right.

Drawing windows which are larger than the client is not as efficient as
those which fit, particularly when the cursor moves, so it is
recommended to avoid using this on slow machines or networks (set
window-size to smallest or manual).

The resize-window command can be used to resize a window manually. If it
is used, the window-size option is automatically set to manual for the
window (undo this with "setw -u window-size"). resize-window works in a
similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and
-A flags. -a sets the window to the size of the smallest client (what it
would be if window-size was smallest) and -A the largest.

For the same behaviour as force-width or force-height, use resize-window
-x or -y, and "setw -u window-size" to revert to automatic sizing..

If the global window-size option is set to manual, the default-size
option is used for new windows. If -x or -y is used with new-session,
that sets the default-size option for the new session.

The maximum size of a window is 10000x10000. But expect applications to
complain and much higher memory use if making a window excessively
big. The minimum size is the size required for the current layout
including borders.

The refresh-client command can be used to pan around a window, -U -D -L
-R moves up, down, left or right and -c returns to automatic cursor
tracking. The position is reset when the current window is changed.

show more ...


# 647c5c18 18-Aug-2018 nicm <nicm@openbsd.org>

SESSION_UNATTACHED flag is no longer necessary now we have an attached
count instead.


# d75a8bcf 16-Oct-2017 nicm <nicm@openbsd.org>

Infrastructure for drawing status lines of more than one line in height,
still only one is allowed but this lets tmux draw bigger ones.


# b81c3e5b 28-Aug-2017 nicm <nicm@openbsd.org>

Do not forbid targets to specify non-visible panes - the checks for
visibility are better where the target is used. GitHub issue 1049.


# d55f3e48 10-May-2017 nicm <nicm@openbsd.org>

Prevent control clients from affecting the session size until they have
specified a size with refresh-client -C. Prompted by a different change
with the same purpose from George Nachman.


# d2f22191 08-Feb-2017 nicm <nicm@openbsd.org>

Improve some of the logging on resize.


# e62b76d6 03-Feb-2017 nicm <nicm@openbsd.org>

Cache status line position to reduce option lookups during output.


# 2ae124fe 16-Oct-2016 nicm <nicm@openbsd.org>

Use the notify name string instead of going via an enum and change
existing hooks to use notifys instead.


# 98ca8272 19-Jan-2016 nicm <nicm@openbsd.org>

I no longer use my SourceForge address so replace it.


# d89252e5 27-Oct-2015 nicm <nicm@openbsd.org>

Move struct options into options.c.


# 82873134 24-Apr-2015 nicm <nicm@openbsd.org>

Convert clients list into a TAILQ.


# 52e9404e 22-Apr-2015 nicm <nicm@openbsd.org>

Make session_has return a flag, returning the first winlink found is a
recipe for errors.


# ae69181d 22-Apr-2015 nicm <nicm@openbsd.org>

Change the windows array into an RB tree and fix some places where we
were only looking at the first winlink for a window in a session.


# d3ba9ba2 14-Nov-2014 nicm <nicm@openbsd.org>

Label windows which are smaller than expected with a reason.


# 9219bdc2 12-Nov-2014 nicm <nicm@openbsd.org>

Don't let force-width or force-height be < PANE_MINIMUM.


# dfbd3895 31-Mar-2014 nicm <nicm@openbsd.org>

Make session_attached a count and add session_many_attached flag.


# 89952ace 10-Oct-2013 nicm <nicm@openbsd.org>

Make recalculate_sizes() handle an empty window with no active
pane. This can happen when a window is in two sessions - it isn't
destroyed immediately when the pane goes away but is left until the la

Make recalculate_sizes() handle an empty window with no active
pane. This can happen when a window is in two sessions - it isn't
destroyed immediately when the pane goes away but is left until the last
session is destroyed. Fixes problems with grouped sessions reported by
Daniel Ralston.

show more ...


# b4a3311e 24-Mar-2013 nicm <nicm@openbsd.org>

Add resize-pane -Z to temporary zoom the active pane to occupy the full
window or unzoom (restored to the normal layout) if it already zoomed,
bound to C-b z by default. The pane is unzoomed on prett

Add resize-pane -Z to temporary zoom the active pane to occupy the full
window or unzoom (restored to the normal layout) if it already zoomed,
bound to C-b z by default. The pane is unzoomed on pretty much any
excuse whatsoever.

We considered making this a new layout but the requirements are quite
different from layouts so decided it is better as a special case. Each
current layout cell is saved, a temporary one-cell layout generated and
all except the active pane set to NULL.

Prompted by suggestions and scripts from several. Thanks to Aaron Jensen
and Thiago Padilha for testing an earlier version.

show more ...


# 36e75931 21-Mar-2013 nicm <nicm@openbsd.org>

Do not include status line in size calculations in control mode.


# 05babb28 17-Mar-2012 nicm <nicm@openbsd.org>

Add notify hooks for various events, the functions are currently empty
stubs but will be filled in for control mode later. From George Nachman.


# 59996dc3 21-Dec-2010 nicm <nicm@openbsd.org>

Store sessions in an RB tree by name rather than a list, this is tidier
and allows them to easily be shown sorted in various lists
(list-sessions/choose-sessions).

Keep a session index which is used

Store sessions in an RB tree by name rather than a list, this is tidier
and allows them to easily be shown sorted in various lists
(list-sessions/choose-sessions).

Keep a session index which is used in a couple of places internally but
make it an ever-increasing number rather than filling in gaps with new
sessions.

show more ...


# 3db94e9e 22-Nov-2010 nicm <nicm@openbsd.org>

There is somewhere that WINDOW_HIDDEN is getting set when it shouldn't
be and I can't find it, but the flag itself is a useless optimisation
that only applies to automatic-resize windows, so just dis

There is somewhere that WINDOW_HIDDEN is getting set when it shouldn't
be and I can't find it, but the flag itself is a useless optimisation
that only applies to automatic-resize windows, so just dispose of it
entirely.

Fixes problems reported by Nicholas Riley.

show more ...


# 4336fb18 21-Jun-2010 nicm <nicm@openbsd.org>

Having a list of winlinks->alerts for each session is stupid, just store
the alert flags directly in the winlink itself.


# fd523813 24-Sep-2009 nicm <nicm@openbsd.org>

Don't allow locked or suspended clients to limit the size of active clients.


# af9e4c5d 19-Jul-2009 nicm <nicm@openbsd.org>

Improved layout code.

Each window now has a tree of layout cells associated with it. In this tree,
each node is either a horizontal or vertical cell containing a list of other
cells running from lef

Improved layout code.

Each window now has a tree of layout cells associated with it. In this tree,
each node is either a horizontal or vertical cell containing a list of other
cells running from left-to-right or top-to-bottom, or a leaf cell which is
associated with a pane.

The major functional changes are:

- panes may now be split arbitrarily both horizontally (splitw -h, C-b %) and
vertically (splitw -v, C-b ");
- panes may be resized both horizontally and vertically (resizep -L/-R/-U/-D,
bound to C-b left/right/up/down and C-b M-left/right/up/down);
- layouts are now applied and then may be modified by resizing or splitting
panes, rather than being fixed and reapplied when the window is resized or
panes are added;
- manual-vertical layout is no longer necessary, and active-only layout is gone
(but may return in future);
- the main-pane layouts now reduce the size of the main pane to fit all panes
if possible.

Thanks to all who tested.

show more ...


123