f731ae4a2d
Revert use of DECSLRM on iTerm2, it doesn't help as much as we throught,
...
and there are some question marks about it's support.
2017-04-18 21:41:42 +00:00
8c8ce08d79
On terminals without DECSLRM, when a pane that is less than the full
...
with of the terminal scrolls, tmux needs to redraw the entire pane. This
results in a large amount of output data which can cause slow terminals
to struggle, particularly when many lines are scrolled together quickly.
This can be reduced by only redrawing when tmux doesn't hold any
buffered data for the terminal. If a redraw is required and data is
buffered, the redraw is deferred until all that data is consumed (it is
checked after every event loop, a timer is used to ensure this happens
at some point). While a redraw is pending, no additional data will be
written to the terminal.
The redraw still happens, now it is just pushed back if it is possible
it would just add more data on top of a terminal that is already
behind. This both gives the terminal a chance to catch up, and allows
tmux to process more scrolling (that would require additional redraws)
in the meantime.
Helps with a problem reported by Greg Hurrell.
2017-04-18 20:37:49 +00:00
623e35f594
Detect iTerm2 and use DECSLRM for it as well.
2017-04-18 18:21:37 +00:00
fb3c5efa50
Add a format for number of bytes writtent to client, useful for debugging.
2017-04-18 15:44:17 +00:00
aace1ead1e
Do not check for BCE for a background colour that isn't needed, use
...
colour 8 instead.
2017-04-18 15:27:47 +00:00
83ff1e9bd3
Include client name in key logging.
2017-04-18 13:34:04 +00:00
175d1854d4
Don't bother moving the cursor for empty lines.
2017-04-17 08:10:44 +00:00
7461c165b5
Remove a couple of redraw flags that no longer have any effect.
2017-04-17 06:40:32 +00:00
d566c780e5
Memory leak, from David CARLIER.
2017-04-16 20:33:46 +00:00
54bcaab70e
Use EL1 to clear lines when redrawing the leftmost pane, rather than
...
spaces.
2017-04-16 20:32:14 +00:00
94b71bcb64
Add Home and End for copy mode.
2017-04-05 12:14:18 +00:00
36882ec789
Try again to resolve problems with mistaking sessions for windows: now
...
do not look up windows as sessions (and panes as windows) when they are
qualified with a ':' or a '.'. So 'foo' as a window target will look for
windows and sessions called 'foo', but ':foo' will only look for
windows, and 'foo:' only for sessions. This means the common case of
using an unadorned session as a window target (send -tfoo) should
continue to work, but an explicit window will not get confused with a
session (send -t:foo).
2017-04-05 11:04:48 +00:00
9b28200578
Give each client a name. This defaults to the tty name as before but
...
falls back to an alternative if the tty name is not available. This is
clearer than overloading the client ttyname member and allows us to
remove the path stored in the tty struct, it should always be the same
as the client.
2017-04-05 10:49:46 +00:00
ab4a4b2ad0
cfg_file can be static.
2017-04-05 10:45:39 +00:00
b9a4beb6e7
Write raw strings in one go rather than character at a time.
2017-03-24 14:45:00 +00:00
591b26e46f
Show count of search results in copy mode.
2017-03-24 07:14:27 +00:00
df3ab87964
Add support for the strikethrough attribute (SGR 9), using the new smxx
...
terminfo capability. This means there are now nine attribute bits, so
anything above 0xff uses an extended cell.
2017-03-22 07:16:54 +00:00
04e17a7e11
Use uid_t for UID not u_int.
2017-03-21 19:28:03 +00:00
cdaa758340
Fix movement after select-line, from Omar Sandoval.
2017-03-21 09:51:00 +00:00
c916feaf29
Fix pane movement by direction (up, down, left, right) when
...
pane-border-status is set, from KOIE Hidetaka.
2017-03-21 09:49:10 +00:00
67d2335130
Fix a couple of argument types.
2017-03-17 14:51:41 +00:00
481e48d119
Add h and l for collapse and expand in choose mode with vi(1) keys, from
...
Gregory Pakosz.
2017-03-17 14:41:54 +00:00
b69efbdd30
Redraw after killp -a.
2017-03-16 20:05:14 +00:00
2a9d697771
Invalidate the cursor when we think we should have wrapped.
2017-03-15 15:22:14 +00:00
3c3c08b6d9
Try to avoid moving the cursor to the start of the next line when
...
printing cells if it is already at the very end of the line and the
terminal will wrap it to the next line itself, this means terminals
still see it as a wrapped line for the purposes of their own mouse
selection. Reported by millert@.
2017-03-15 09:21:21 +00:00
8e9b10062b
Log where panes are created.
2017-03-13 17:20:11 +00:00
fd65210139
Revert previous, breaks normal short targets, reported by Theo Buehler.
2017-03-13 10:53:32 +00:00
d455da45eb
Fix calculation of size for full size splits.
2017-03-11 15:16:35 +00:00
0fe3b739a1
Only look for window and pane parts of target as a sesson and window if
...
they look like an ID.
2017-03-11 15:16:08 +00:00
55e73e3612
Clear the bracket paste mode when in the command prompt.
2017-03-09 22:00:46 +00:00
bce1dee034
Move the client identify (display-panes) code into server-client.c.
2017-03-09 17:06:35 +00:00
dbfee6a468
Move server_fill_environ into environ.c and move some other common code
...
into it.
2017-03-09 17:02:38 +00:00
e8f2609ca4
Skip over padding cells when moving the cursor left or right.
2017-03-08 20:05:25 +00:00
41b31fe240
Handle empty options correctly.
2017-03-08 14:43:40 +00:00
78ca1b0265
Always send smkx to the terminal outside, the keys we get from terminfo
...
are the keys when it is on.
2017-03-08 14:34:35 +00:00
6b2009ad72
Add a helper function for the most common format_create/defaults/expand
...
pattern.
2017-03-08 13:36:12 +00:00
1e6e606f54
Need to flush before writing out cells we are not collecting, also add
...
some extra logging.
2017-03-07 13:48:28 +00:00
daac28febb
If moving cells outside the current used count, update it.
2017-03-07 13:47:56 +00:00
dc8fefe902
Collect strings correctly when on terminals that don't support UTF-8.
2017-03-06 09:02:59 +00:00
fba9ebcc0c
When redrawing a combined UTF-8 characters in its existing position,
...
need to save and restore the cursor so that the next character goes into
the right place.
2017-03-06 09:02:36 +00:00
e741a0bcd7
If splitw -b is used, insert the new pane before the current one in the
...
pane list. This means the numbering is in order (for example for
display-panes) and fixes a problem with redrawing the active pane
borders.
2017-02-27 13:07:57 +00:00
0414b1fc78
Minor bits: fix an array size, add comment, make grid_cell_entry static.
2017-02-22 09:01:32 +00:00
8a0b279c31
Change pane redraw to collect cells up as well, and simplify it a bit.
2017-02-21 16:25:04 +00:00
27ee34e7fa
Don't need is1,is2,is3 so remove them.
2017-02-21 14:18:12 +00:00
9e4c5133c8
Scrolling at least needs to be flushed before sending EL to the terminal
...
(but it is simpler to flush everything, so do that instead).
2017-02-21 10:30:15 +00:00
f27e1d07fc
Add SGR 28 to clear hidden flag.
2017-02-19 07:55:11 +00:00
82db1fa9e5
There are buggy terminals out there that do not move the cursor to 0,0
...
after CSR, so invalidate the cursor position rather than assuming 0,0.
2017-02-16 12:56:01 +00:00
c948c6b697
Handle insert cells when cursor at edge of screen correctly, and do a
...
full flush before insert.
2017-02-16 12:43:08 +00:00
c889e11375
Merge clear-history into capture-pane.
2017-02-16 12:18:38 +00:00
8b8d0963da
Style nits.
2017-02-16 10:53:25 +00:00