aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
Commit message (Collapse)AuthorAge
...
* | Support for windows larger than the client.Nicholas Marriott2018-08-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds 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. 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). 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-width -x or -y. 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 higher memory use if you make a window that big. The minimum size is the size required for the current layout including borders. This change allows some code improvements, most notably that since windows can now never be cropped, that code can be removed from the layout code, and since panes can now never be outside the size of the window, window_pane_visible can be removed.
* | Merge branch 'obsd-master'Thomas Adam2018-08-19
|\|
| * Add a flag to force redrawing of the status line even if the contentnicm2018-08-19
| | | | | | | | hasn't changed, needed for resizing.
* | Merge branch 'obsd-master'Thomas Adam2018-08-19
|\|
| * Add a client redraw-window flag instead of the redraw-all flag and fornicm2018-08-19
| | | | | | | | all just use the three flags together (window, borders, status).
* | Merge branch 'obsd-master'Thomas Adam2018-08-18
|\|
| * SESSION_UNATTACHED flag is no longer necessary now we have an attachednicm2018-08-18
| | | | | | | | count instead.
* | Merge branch 'obsd-master'Thomas Adam2018-08-02
|\|
| * Make key trees and some other bits static.nicm2018-08-02
| |
* | Merge branch 'obsd-master'Thomas Adam2018-07-17
|\|
| * When a key isn't in the first table, we need to try the same key againnicm2018-07-17
| | | | | | | | | | not the any key. Also rename some labels. Fixes GitHub issue 1406 reeported by Mark Kelly.
* | Merge branch 'obsd-master'Thomas Adam2018-07-16
|\|
| * Add an "Any" key to run a command if a key is pressed that is not boundnicm2018-07-16
| | | | | | | | in the current key table. GitHub issue 1404.
* | Merge branch 'obsd-master'Thomas Adam2018-07-04
|\|
| * Add pane focus hooks.nicm2018-07-04
| |
* | Merge branch 'obsd-master'Thomas Adam2018-05-24
|\|
| * Make server_client_get_cwd used (almost) everywhere we need to work outnicm2018-05-24
| | | | | | | | | | the cwd, and do not fall back to "." as it is pretty useless. GitHub issue 1331.
* | Merge branch 'obsd-master'Thomas Adam2018-03-08
|\|
| * Add a missing client-detached hook when the server shuts down, and donicm2018-03-08
| | | | | | | | | | not exit until jobs started from run-shell/if-shell have finished (add a job flags member and a flag to indicate other jobs). GitHub issue 1245.
* | Merge branch 'obsd-master'Thomas Adam2018-02-22
|\|
| * Check prefix when retrying so it is checked while repeat flag isnicm2018-02-22
| | | | | | | | set. GitHub issue 1239.
* | Merge branch 'obsd-master'Thomas Adam2018-02-05
|\|
| * Add struct status_line to hold status line members of struct client, notnicm2018-02-05
| | | | | | | | used yet but will be soon. From Thomas Adam.
* | Merge branch 'obsd-master'Thomas Adam2017-12-19
|\|
| * Report better error from server when socket create fails, GitHub issuenicm2017-12-19
| | | | | | | | 1201.
* | Merge branch 'obsd-master'Thomas Adam2017-10-20
|\| | | | | | | | | Conflicts: server-fn.c
| * Infrastructure for drawing status lines of more than one line in height,nicm2017-10-16
| | | | | | | | still only one is allowed but this lets tmux draw bigger ones.
| * Do not attempt to use TIOCSWINSZ on a -1 file descriptor (possible ifnicm2017-09-06
| | | | | | | | the pane has already died).
* | Check missed during merge.Nicholas Marriott2017-10-12
| |
* | Merge branch 'obsd-master'Thomas Adam2017-08-30
|\|
| * Pass flags into cmd_find_from_* to fix prefer-unattached, reported bynicm2017-08-30
| | | | | | | | Thomas Sattler.
* | Merge branch 'obsd-master'Thomas Adam2017-08-16
|\|
| * Add -d flag to display-panes to specify timeout, and make 0 mean nonicm2017-08-16
| | | | | | | | timeout. From Laurens Post.
* | Merge branch 'obsd-master'Thomas Adam2017-07-14
|\|
| * Fix redraw defer code in the presence of multiple clients - the timernicm2017-07-14
| | | | | | | | | | | | | | may be needed for all of them, so don't delete it on the first; and don't skip setting the redraw flag if the timer is already running. Reported by Pol Van Aubel in GitHub issue 1003.
* | Merge branch 'obsd-master'Thomas Adam2017-07-12
|\| | | | | | | | | | | | | | | Conflicts: cmd-pipe-pane.c proc.c tmux.c window.c
| * proc_send_s now seems unnecessary.nicm2017-07-12
| |
* | Merge branch 'obsd-master'Thomas Adam2017-06-13
|\|
| * Remove xterm flag from key before checking prefix, reported by Peternicm2017-06-13
| | | | | | | | Fern in GitHub issue 974.
* | Merge branch 'obsd-master'Thomas Adam2017-06-06
|\|
| * Continue and pass keys through if they are repeated keys, so that thenicm2017-06-06
| | | | | | | | first key after a repeated key doesn't get lost.
* | Differences to OpenBSD.Nicholas Marriott2017-05-31
| |
* | Build fixes.Nicholas Marriott2017-05-31
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-31
|\| | | | | | | | | | | | | Conflicts: Makefile.am cfg.c server-client.c
| * Some applications like vi(1) and tmux until 10 minutes or so ago, do notnicm2017-05-31
| | | | | | | | | | | | | | redraw on SIGWINCH if the size returns to the original size between the original SIGWINCH and when they get around to calling TIOCGWINSZ. So use the existing resize timer to introduce a small delay between the two resizes.
| * It is not OK to ignore SIGWINCH if SIOCGWINSZ reports the size hasnicm2017-05-31
| | | | | | | | | | | | unchanged, because it may have changed and changed back in the time between us getting the signal and calling ioctl(). Always redraw when we see SIGWINCH.
| * Because we defer actually resizing applications (calling TIOCSWINSZ)nicm2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | until the end of the server loop, tmux may have gone through several internal resizes in between. This can be a problem if the final size is the same as the initial size (what the application things it currently is), because the application may choose not to redraw, assuming the screen state is unchanged, when in fact tmux has thrown away parts of the screen, assuming the application will redraw them. To avoid this, do an extra resize if the new size is the same size as the initial size. This should force the application to redraw when tmux needs it to, while retaining the benefits of deferring (so we now resize at most two times instead of at most one - and only two very rarely). Fixes a problem with break-pane and zoomed panes reported by Michal Mazurek.
* | Merge branch 'obsd-master'Thomas Adam2017-05-30
|\|
| * Store a copy of the old status line, will be needed soon for new choose mode.nicm2017-05-29
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-29
|\|