When choose-tree is told to expand/collapse items (especially when first
rendering collapsed to just show sessions), ensure that in addition to
setting the selected item, that the item itself appears on the bottom of
the screen, rather than off screen.
This was causing rendering glitches when a very small tmux window tried
to render a list of items in choose-tree much larger than itself, and
the selected item appeared off screen, and didn't show the selection
until the selection had wrapped around to the top of the screen.
When calling 'movew -r' on a session to reorder the winlinks, ensure
when adding back in the information for the lastw stack that we look up
the winlink based on the window and not its index.
Using the index doesn't make sense here because when comparing it to the
old set, it will never match since the winlink has been renumbered.
Bug reported by Ben Boeckel. Patch by Thomas Adam.
inputs, we should set the x/y coordinates earlier than we currently do,
so that we aren't off-by-one in the case when the statusbar is at the
top of the screen. By Thomas Adam.
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.
and in fact it is less useful that using the client ttyname. So don't bother
and don't pass it from the client. If we need it in future it is in c->environ.
rather than strings.
- Each session still has a current working directory.
- New sessions still get their working directory from the client that created
them or its attached session if any.
- New windows are created by default in the session working directory.
- The -c flag to new, neww, splitw allows the working directory to be
overridden.
- The -c flag to attach let's the session working directory be changed.
- The default-path option has been removed.
To get the equivalent to default-path '.', do:
bind c neww -c $PWD
To get the equivalent of default-path '', do:
bind c neww -c '#{pane_current_path}'
The equivalent of default-path '~' is left as an exercise for the reader.
This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
Some ncurses packages have build time configuration options to separate its
different parts into separate libraries. Some Linux distributions in
particular separate out the terminfo routines in to libtinfo.
This change teaches configure that setupterm() can also be found there.
automake 1.14 onwards has started emitting lots of warnings about this
option:
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the
'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding
output
automake: object file(s) will be placed in the top-level directory.
However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same
subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout
your
automake: project, to avoid future incompatibilities.
So enable this in AM_INIT_AUTOMAKE.
This doesn't seem to break older automake versions.
The current behaviour of mouse-resize-pane is such that if the mouse button
is held down and a selection takes place within a pane, that if the mouse
pointer then hits a border edge, that pane-resize would initiate.
This seems counter-intuitive; instead, check for a resize condition if the
border of a pane is selected, and in the case of mouse selection within a
pane, no longer resize the pane if edge of the border is hit.
When a pane is maximized, and text is selected, we end up checking if a pane
switch is needed. This therefore means we might end up selecting panes
which aren't visible.
The point of setting TMUX_TMPDIR is to then make any labels from -L go to
that directory. In the case of makesocketpath() with no TMUX_TMPDIR set,
would set both the path and the default socket to a file. The checking of
the permissions on the file worked fine in that case, but when TMUX_TMPDIR
is set, won't work on a directory.
This fixes the problem by ensuring the check on the permissions is performed
on directories only.