Commit Graph

94 Commits (bc4681c83d612a3d9609dd609e7d89b035b25dd5)

Author SHA1 Message Date
Thomas Adam 7019937b52 Merge branch 'obsd-master' into master 2021-03-12 10:01:18 +00:00
nicm e8224fb0d1 Fix so tmux correctly sends the cvvis (cursor very visible) capability
rather than sending it and then immediately undoing it with cnorm. Also
turn it off when the cursor shape is changed like xterm.
2021-03-12 08:39:17 +00:00
Thomas Adam 70a6af6287 Merge branch 'obsd-master' into master 2021-01-26 10:01:18 +00:00
nicm d6542c333d Always resize the original screen before copying when exiting the
alternate screen, GitHub issue 2536.
2021-01-26 09:32:52 +00:00
Thomas Adam d064060904 Merge branch 'obsd-master' 2020-10-30 14:01:20 +00:00
nicm 02197f20d0 Do not leak path when freeing screen, from Sergey Nizovtsev. 2020-10-30 11:33:41 +00:00
nicm 6ea6d46d0a Store and restore cursor position when copy mode is resized, from
Anindya Mukherjee.
2020-05-16 15:49:20 +00:00
Nicholas Marriott e810f15272 Store and restore cursor position when copy mode is resized, from Anindya
Mukherjee.
2020-05-05 10:20:57 +01:00
Thomas Adam 8ae3915cc2 Merge branch 'obsd-master' 2020-04-22 12:01:38 +01:00
nicm b72498c4ff Update the cursor position when deleting lines from screens without
history, GitHub issue 2173.
2020-04-22 08:48:44 +00:00
Thomas Adam 7da5418758 Merge branch 'obsd-master' 2020-04-18 20:01:29 +01:00
nicm 100db552d1 A resize can realloc so cannot cache the value of the list pointer. 2020-04-18 17:20:25 +00:00
Thomas Adam 2b83ee5557 Merge branch 'obsd-master' 2020-04-18 18:01:28 +01:00
nicm ea5fdd5331 There is no point in keeping a bunch of different text buffers for each
line when writing, we only need one as big as the line width - there
can't be any more text than that since newer will overwrite older.
2020-04-18 15:12:28 +00:00
Thomas Adam 7a21e911e1 Merge branch 'obsd-master' 2020-04-17 16:01:33 +01:00
nicm 282a7a8d96 Make sure the cursor position is still on screen after we have trimmed
empty lines. Also improve some log messages.
2020-04-17 14:06:42 +00:00
Thomas Adam 6d6309014e Merge branch 'obsd-master' 2020-04-15 20:01:27 +01:00
nicm 53a29a2ffa Instead of fixing with the cursor position when the copied screen is
created, resize it and let the resize/reflow code fix it up and return
it. Solves various problems with cursor position and resizing when in
copy mode. With Anindya Mukherjee.
2020-04-15 17:50:02 +00:00
Thomas Adam fe1778e377 Merge branch 'obsd-master' 2020-04-15 16:01:27 +01:00
nicm c7883d5c87 Use grid_empty_line rather than memset when adding new lines on resize.
Also remove some old test code.
2020-04-15 12:59:20 +00:00
Thomas Adam 6a2f32b4fd Merge branch 'obsd-master' 2020-04-07 16:01:29 +01:00
nicm 1c8f7c1f7a Do not restore history flag if it was never set. 2020-04-07 13:55:24 +00:00
Thomas Adam c9cd8f9b5d Merge branch 'obsd-master' 2020-03-31 10:01:29 +01:00
nicm 3bbd66c013 Move alternate screen into the screen rather than the pane. 2020-03-31 07:00:34 +00:00
Thomas Adam 54553903de Merge branch 'obsd-master' 2020-02-05 14:01:26 +00:00
nicm fb29242168 Make list-keys description clearer in tmux.1 and remove an unused variable. 2020-02-05 13:06:49 +00:00
Thomas Adam 19d5f4a0bd Merge branch 'obsd-master' 2020-02-03 14:01:25 +00:00
nicm 265164d251 Instead of passing titles through vis() which doubles backslashes, just
ignore any containing control characters or invalid UTF-8. GitHub issue 2070.
2020-02-03 13:46:27 +00:00
Thomas Adam dbdff241b2 Merge branch 'obsd-master' 2019-11-15 12:01:27 +00:00
nicm f3dc38dcae Handle OSC 7 (a VTE extension) and put the result in a new format (pane_path). 2019-11-15 11:16:53 +00:00
Thomas Adam bfc1f0ca62 Merge branch 'obsd-master' 2019-04-02 11:02:44 +01:00
nicm ffa4d48967 Store and restore cursor across reflow by working out a position based
on unwrapped lines, rather than a grid offset. Fixes problems reported
by Thomas Sattler and Paul de Weerd.
2019-04-02 08:45:32 +00:00
Thomas Adam 0292243b29 Merge branch 'obsd-master' 2019-03-20 20:02:37 +00:00
nicm 9ee1a8f701 Improve cursor positioning after reflow by storing the position as an
offset into the entire history before reflow and restoring it aftewards.
2019-03-20 19:19:11 +00:00
Thomas Adam 469a9e9439 Merge branch 'obsd-master' 2019-01-15 12:02:36 +00:00
nicm 34c0807be6 Do not highlight characters which will not be copied, reported by
Jaroslaw Rzeszotko.
2019-01-15 09:56:31 +00:00
Thomas Adam 400b807d75 Merge branch 'obsd-master' 2018-07-31 17:02:31 +01:00
nicm 82776c456e Move struct screen_sel into screen.c and tidy up members that are only
used by copy mode.
2018-07-31 11:49:26 +00:00
Thomas Adam 850c26dd46 Merge branch 'obsd-master' 2018-07-04 13:02:25 +01:00
nicm 2fae6a5761 Add accessors for grid linedata member, for some future work. From Dan
Aloni.
2018-07-04 09:44:07 +00:00
Thomas Adam e755ca37b3 Merge branch 'obsd-master' 2017-11-15 20:01:22 +00:00
nicm 533a5719c5 Completely rewrite the reflow code to correctly handle double width
characters (previously they were not accounted for).
2017-11-15 19:21:24 +00:00
Thomas Adam 8c29f7413b Merge branch 'obsd-master' 2017-11-02 20:01:26 +00:00
nicm 3887d95bca There is no point in reflowing panes which have not changed width. 2017-11-02 18:26:38 +00:00
Thomas Adam 2be01ab4ec Merge branch 'obsd-master' 2017-10-06 13:33:32 +01:00
nicm 88517ceebb Add support for the xterm(1) title stack, from Brad Town, GitHub issue
1075.
2017-10-05 13:29:18 +00:00
Thomas Adam a999f6f876 Linux build fixes
Linux doesn't have vis.h
2017-06-05 12:00:52 +01:00
nicm 8149bc3fa6 Be more strict about escape sequences that rename windows or set titles:
ignore any that not valid UTF-8 outright, and for good measure pass the
result through our UTF-8-aware vis(3).
2017-06-04 09:02:36 +00:00
nicm 13a0b6bb3f Collect sequences of printable ASCII characters and process them
together instead of handling them one by one. This is significantly
faster. Sequences are terminated when we reach the end of the line, fill
the internal buffer, or a different character is seen by the input
parser (an escape sequence, or UTF-8).

Rather than writing collected sequences out immediately, hold them until
it is necessary (another screen modification, or we consume all
available data). This means we can discard changes that would have no
effect (for example, lines that would just be scrolled off the screen or
cleared). This reduces the total amount of data we write out to the
terminal - not important for fast terminals, but a big help with slow
(like xterm).
2017-02-08 16:45:18 +00:00
nicm 7e6c2cb238 Make the selection able to exist independent of the cursor position, so
that it is not affected by scrolling. If MouseDragEnd1Pane is bound to
the new "stop-selection" command:

    bind -Tcopy-mode MouseDragEnd1Pane stop-selection

A selection made with the mouse will stay as it is after button 1 is
released. (It also works bound to a key.)

From Artem Fokin.
2016-11-24 13:38:44 +00:00