Go to file
Nicholas Marriott 6036bdd06c 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.
2009-07-19 13:21:40 +00:00
Makefile Improved layout code. 2009-07-19 13:21:40 +00:00
array.h Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
attributes.c Don't dereference NULL if buf winds up being empty. Can't happen 2009-06-02 11:14:08 +00:00
buffer-poll.c Nuke unused buffer functions. Found by lint. 2009-06-25 06:05:47 +00:00
buffer.c Nuke unused buffer functions. Found by lint. 2009-06-25 06:05:47 +00:00
cfg.c Unused prototypes. Found by lint, no binary change. 2009-06-25 06:00:45 +00:00
client-fn.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
client-msg.c Make code clearer: 2009-06-02 11:17:03 +00:00
client.c Remove some dead assignments, found by sthen with clang. 2009-06-25 22:09:20 +00:00
clock.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
cmd-attach-session.c Tidy up new-session and attach-session and change them to work from inside 2009-07-17 15:03:11 +00:00
cmd-bind-key.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-break-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-choose-session.c A similar for fix for window_choose: don't rely on the callback always being 2009-07-17 07:05:58 +00:00
cmd-choose-window.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-clear-history.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-clock-mode.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-command-prompt.c Memory could be leaked if a second prompt or message appeared while another was 2009-07-17 06:13:27 +00:00
cmd-confirm-before.c Memory could be leaked if a second prompt or message appeared while another was 2009-07-17 06:13:27 +00:00
cmd-copy-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-copy-mode.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-delete-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-detach-client.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-display-message.c - New command display-message (alias display) to display a message in the 2009-07-17 18:45:08 +00:00
cmd-down-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-find-window.c A similar for fix for window_choose: don't rely on the callback always being 2009-07-17 07:05:58 +00:00
cmd-generic.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-has-session.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-if-shell.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-kill-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-kill-server.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-kill-session.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-kill-window.c Make it so using kill-pane to destroy the last pane in a window destroys the 2009-07-17 20:37:03 +00:00
cmd-last-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-link-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-buffers.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-clients.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-commands.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-keys.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-sessions.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-list-windows.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-list.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
cmd-load-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-lock-server.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-move-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-new-session.c Tidy up new-session and attach-session and change them to work from inside 2009-07-17 15:03:11 +00:00
cmd-new-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-next-layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-next-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-paste-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-previous-layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-previous-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-refresh-client.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-rename-session.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-rename-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-resize-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-respawn-window.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-rotate-window.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-save-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-scroll-mode.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-select-layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-select-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-select-prompt.c Memory could be leaked if a second prompt or message appeared while another was 2009-07-17 06:13:27 +00:00
cmd-select-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-send-keys.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-send-prefix.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-server-info.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-set-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-set-option.c Add three new session options: visual-activity, visual-bell, visual-content. If 2009-07-18 14:59:25 +00:00
cmd-set-password.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-set-window-option.c Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bit 2009-07-15 07:50:34 +00:00
cmd-show-buffer.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-show-options.c Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bit 2009-07-15 07:50:34 +00:00
cmd-show-window-options.c Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bit 2009-07-15 07:50:34 +00:00
cmd-source-file.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-split-window.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-start-server.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-string.c Expand leading tildes in arguments, from Tiage Cunha. 2009-07-13 18:49:36 +00:00
cmd-suspend-client.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-swap-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd-swap-window.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-switch-client.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-unbind-key.c Having fixed flags for single-character getopt options is a bit hard to 2009-07-13 23:11:35 +00:00
cmd-unlink-window.c Add a -k flag to unlink-window which makes it behave the same as the old 2009-07-15 08:05:56 +00:00
cmd-up-pane.c Improved layout code. 2009-07-19 13:21:40 +00:00
cmd.c - New command display-message (alias display) to display a message in the 2009-07-17 18:45:08 +00:00
colour.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
grid-view.c Support "alternate screen" mode (terminfo smcup/rmcup) typically used by full 2009-07-13 10:43:52 +00:00
grid.c Typo in grid_duplicate_lines (sy for dy) causing it to write into the wrong 2009-07-16 07:34:37 +00:00
input-keys.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
input.c Support "alternate screen" mode (terminfo smcup/rmcup) typically used by full 2009-07-13 10:43:52 +00:00
key-bindings.c Improved layout code. 2009-07-19 13:21:40 +00:00
key-string.c Add backspace key to named keys. 2009-07-14 06:56:30 +00:00
layout-set.c Improved layout code. 2009-07-19 13:21:40 +00:00
layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
log.c tmux doesn't and won't need syslog logging, so remove it and some other unused 2009-06-25 06:23:10 +00:00
mode-key.c Add a "back to indentation" key in copy mode to move the cursor to the first 2009-07-12 16:15:34 +00:00
names.c Just appending -l to $SHELL to create a login shell is wrong: -l is not POSIX, 2009-07-08 05:26:45 +00:00
options-cmd.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
options.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
paste.c Fix two copy/paste bugs: forbid zero-length buffers to prevent a fatal error 2009-07-02 16:15:43 +00:00
procname.c Also #ifndef nitems here, caught by Thomas Jeunet. 2009-06-26 10:55:37 +00:00
resize.c Improved layout code. 2009-07-19 13:21:40 +00:00
screen-redraw.c For some reason when clearing status/message it was redrawing the entire client 2009-07-14 19:11:58 +00:00
screen-write.c The scroll region cannot be one line only, ignore attempts to make it so. 2009-07-14 14:47:32 +00:00
screen.c When resizing a screen smaller in alternate screen mode, all the lines needed 2009-07-17 18:35:11 +00:00
server-fn.c Make it so using kill-pane to destroy the last pane in a window destroys the 2009-07-17 20:37:03 +00:00
server-msg.c Handle empty or unset TERM correctly; also fix a fatal() message while here. 2009-07-07 17:24:32 +00:00
server.c Improved layout code. 2009-07-19 13:21:40 +00:00
session.c Rename the global options variables to be shorter and to make session options 2009-07-07 19:49:19 +00:00
status.c - New command display-message (alias display) to display a message in the 2009-07-17 18:45:08 +00:00
tmux.1 Improved layout code. 2009-07-19 13:21:40 +00:00
tmux.c Add three new session options: visual-activity, visual-bell, visual-content. If 2009-07-18 14:59:25 +00:00
tmux.h Improved layout code. 2009-07-19 13:21:40 +00:00
tty-keys.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
tty-term.c Since tmux doesn't actually need ncurses, use -lcurses/curses.h 2009-07-14 06:30:45 +00:00
tty-write.c Get rid of the PANE_HIDDEN flag in favour of a function, and moving the 2009-07-14 07:23:36 +00:00
tty.c Don't send initialisation strings is1/2/3 (barely anything else does) and move 2009-07-10 07:11:59 +00:00
utf8.c Miscellaneous unused functions, including one which was basically a 2009-06-25 06:15:04 +00:00
window-choose.c A similar for fix for window_choose: don't rely on the callback always being 2009-07-17 07:05:58 +00:00
window-clock.c Use gmtime_r so the current time isn't overwritten, the minute comparison works 2009-06-27 14:40:22 +00:00
window-copy.c Add a "back to indentation" key in copy mode to move the cursor to the first 2009-07-12 16:15:34 +00:00
window-more.c Miscellaneous unused functions, including one which was basically a 2009-06-25 06:15:04 +00:00
window-scroll.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
window.c Improved layout code. 2009-07-19 13:21:40 +00:00
xmalloc.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00