aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
Commit message (Collapse)AuthorAge
...
| * 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
|\|
| * Function to count clients.nicm2017-05-29
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-16
|\|
| * Line length and spaces to tabs.nicm2017-05-16
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-10
|\|
| * Insert copy mode bindings at the right place in the command queue.nicm2017-05-10
| |
* | Merge branch 'obsd-master'Thomas Adam2017-05-09
|\|
| * If the current screen was complex enough, it was possible to make redrawnicm2017-05-09
| | | | | | | | | | | | itself hit the "terminal can't keep up" check. To avoid this, record how much data we send during redraw (we know we will be starting with 0) and skip the check until it has been flushed. GitHub issue 912.
* | Merge branch 'obsd-master'Thomas Adam2017-05-09
|\| | | | | | | | | Conflicts: format.c
| * Up to now, tmux sees \033\033[OA as M-Up and since we turned onnicm2017-05-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | xterm-keys by default, generates \033[1;3A instead of \033\033[OA. Unfortunately this confuses vi, which doesn't understand xterm keys and now sees Escape+Up pressed within escape-time as Escape followed by A. The issue doesn't happen in xterm itself because it gets the keys from X and can distinguish between a genuine M-Up and Escape+Up. Because xterm can, tmux can too: xterm will give us \033[1;3A (that is, kUP3) for a real M-Up and \033\033OA for Escape+Up - in fact, we can be sure any \033 preceding an xterm key is a real Escape key press because Meta would be part of the xterm key instead of a separate \033. So change tmux to recognise both sequences as M-Up for its own purposes, but generate the xterm version of M-Up only if it originally received the xterm version from the terminal. This means we will return to sending \033\033OA instead of the xterm key for terminals that do not support xterm keys themselves, but there is no practical way around this because they do not allow us to distinguish between Escape+Up and M-Up. xterm style escape sequences are now the de facto standard for these keys in any case. Problem reported by jsing@ and subsequently by Cecile Tonglet in GitHub issue 907.
* | Merge branch 'obsd-master'Thomas Adam2017-05-01
|\|
| * In order that people can use formats like #D in #() in the status linenicm2017-05-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and not have to wait for an update when they change pane, we allow commands to run more than once a second if the expanded form changes. Unfortunately this can mean them being run far too often (pretty much continually) when multiple clients exist, because some formats (including #D) will always differ between clients. To avoid this, give each client its own tree of jobs which means that the same command will be different instances for each client - similar to how we have the tag to separate commands for different panes. GitHub issue 889; test case reported by Paul Johnson.
* | Merge branch 'obsd-master'Thomas Adam2017-04-22
|\|
| * Mouse bindings and hooks set up an initial current state when running anicm2017-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | command. This is used for the session, window and pane for all commands in the command sequence if there is no -t or -s. However, using it for all commands in the command sequence means that if the active pane or current session is changed, subsequent commands still use the previous state. So make commands which explicitly change the current state (such as neww and selectp) update it themselves for later commands. Commands which may invalidate the state (like killp) are already OK because an invalid state will be ignored. Also fill in the current state for all key bindings rather than just the mouse, so that any omissions are easier to spot.
* | Merge branch 'obsd-master'Thomas Adam2017-04-22
|\|
| * Log error properly when no current state, and some other minor tweaks.nicm2017-04-21
| |
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * Key needs to be initialized to zero now it has flags in it.nicm2017-04-21
| |
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * Add cmd_find_from_winlink_pane and use it in a couple of places, andnicm2017-04-21
| | | | | | | | make functions that can't fail void.
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * It is annoying that the copy mode key table (or any other key table)nicm2017-04-21
| | | | | | | | | | | | | | | | | | | | | | | | will suppress root key table bindings. So change to always check the root table if no binding is found in the current table (whether it be the prefix table from pressing the prefix or the copy mode table from a pane). A root key binding can be blocked by binding the key to a command that does nothing (like send-keys with no arguments). Problem reported by Thomas Sattler.
* | Merge branch 'obsd-master'Thomas Adam2017-04-21
|\|
| * Store state shared between multiple commands in the queue in a sharednicm2017-04-21
| | | | | | | | structure.
* | Merge branch 'obsd-master'Thomas Adam2017-04-20
|\|
| * Only set up a current target for mouse key bindings. Fixes:nicm2017-04-20
| | | | | | | | | | | | | | bind q select-pane -U \; resize-pane -Z (There is still some possible weirdness with the way we do current targets, it should probably be done in a different way at some point.)
* | Merge branch 'obsd-master'Thomas Adam2017-04-19
|\|