aboutsummaryrefslogtreecommitdiff
path: root/screen-write.c
Commit message (Collapse)AuthorAge
...
* Extend the #[] style syntax and use that together with previous formatnicm2019-03-18
| | | | | | | | | | | | | | | | | | | | changes to allow the status line to be entirely configured with a single option. Now that it is possible to configure their content, enable the existing code that lets the status line be multiple lines in height. The status option can now take a value of 2, 3, 4 or 5 (as well as the previous on or off) to configure more than one line. The new status-format array option configures the format of each line, the default just references the existing status-* options, although some of the more obscure status options may be eliminated in time. Additions to the #[] syntax are: "align" to specify alignment (left, centre, right), "list" for the window list and "range" to configure ranges of text for the mouse bindings. The "align" keyword can also be used to specify alignment of entries in tree mode and the pane status lines.
* Add a wrapper (struct style) around styles rather than using thenicm2019-03-14
| | | | grid_cell directly. There will be some non-cell members soon.
* DECRC and DECSC apparently need to preserve origin mode as well, basednicm2019-03-12
| | | | on a fix from Marc Reisner.
* Fix HPA in origin mode.nicm2019-03-12
|
* Fix wrapping after origin mode change.nicm2019-03-12
|
* Add support for origin mode (DECOM, SM/RM ?6), from Marc Reisner.nicm2019-03-12
|
* Initialize context property in alignment test handler function.nicm2018-11-13
|
* Allow style #[] in mode formats.nicm2018-11-12
|
* Reset all flags in screen_write_reset, reported by Benjamin Poirier.nicm2018-10-31
|
* Add a "terminal" colour which can be used instead of "default" in stylenicm2018-10-25
| | | | | options for the terminal default colour, bypassing any inheritance from other options. Prompted by a discussion with abieber@.
* Support for windows larger than visible on the attached client. This hasnicm2018-10-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | been a limitation for a long time. There are 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. The default is currently largest but this may change. 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). The offset of the visible portion of the window is shown in status-right. 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-window -x or -y, and "setw -u window-size" to revert to automatic sizing.. 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 much higher memory use if making a window excessively big. The minimum size is the size required for the current layout including borders. The refresh-client command can be used to pan around a window, -U -D -L -R moves up, down, left or right and -c returns to automatic cursor tracking. The position is reset when the current window is changed.
* Move struct screen_sel into screen.c and tidy up members that are onlynicm2018-07-31
| | | | used by copy mode.
* Add accessors for grid linedata member, for some future work. From Dannicm2018-07-04
| | | | Aloni.
* Do not collect top-bit-set characters in case they need to be replaced.nicm2018-01-12
|
* Completely rewrite the reflow code to correctly handle double widthnicm2017-11-15
| | | | characters (previously they were not accounted for).
* Support mouse on preview in tree mode.nicm2017-11-03
|
* Make the mode draw function use the parent screen directly rather thannicm2017-11-02
| | | | its own to avoid copying twice.
* Add a "fast" version of screen_write_copy for tree mode that doesn't donicm2017-11-02
| | | | all the checks and selection and marking stuff needed for copy mode.
* When writing batches of characters to the screen, we need to clearnicm2017-10-05
| | | | | padding or later UTF-8 characters could be displayed incorrectly. GitHub issue 1090.
* Add -F to choose-tree, choose-client, choose-buffer to specify thenicm2017-08-09
| | | | | format of each line, as well as adding a couple of formats needed for the default display.
* Try to show a better preview of sessions and windows in tree mode.nicm2017-06-30
|
* Need to flush out the linefeed after wrapper. GitHub issue 970.nicm2017-06-12
|
* Typo/style; plus man page escaping from jmc.nicm2017-06-04
|
* Style and spacing nits.nicm2017-05-31
|
* Rewrite of choose mode, both to simplify and tidy the code and to addnicm2017-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | some modern features. Now the common code is in mode-tree.c, which provides an API used by the three modes now separated into window-{buffer,client,tree}.c. Buffer mode shows buffers, client mode clients and tree mode a tree of sessions, windows and panes. Each mode has a common set of key bindings plus a few that are specific to the mode. Other changes are: - each mode has a preview pane: for buffers this is the buffer content (very useful), for others it is a preview of the pane; - items may be sorted in different ways ('O' key); - multiple items may be tagged and an operation applied to all of them (for example, to delete multiple buffers at once); - in tree mode a command may be run on the selected item (session, window, pane) or on tagged items (key ':'); - displayed items may be filtered in tree mode by using a format (this is used to implement find-window) (key 'f'); - the custom format (-F) for the display is no longer available; - shortcut keys change from 0-9, a-z, A-Z which was always a bit weird with keys used for other uses to 0-9, M-a to M-z. Now that the code is simpler, other improvements will come later. Primary key bindings for each mode are documented under the commands in the man page (choose-buffer, choose-client, choose-tree). Parts written by Thomas Adam.
* Need to store bg for ECH.nicm2017-05-12
|
* Need to clear tty context before using it.nicm2017-05-12
|
* Scrolling needs to use background colour.nicm2017-05-12
|
* ECH needs to use background colour.nicm2017-05-12
|
* Clear to start of screen needs to use background colour.nicm2017-05-11
|
* Fix UTF-8 combining characters in column 0, based on a diff from Keithnicm2017-04-29
| | | | Winstein.
* Make full width panes try to play more nicely with terminal copy andnicm2017-04-25
| | | | | paste by avoiding explicit line wraps if we think the terminal will wrap anyway.
* Can't collect UTF-8 characters of more than one byte at the moment.nicm2017-04-22
|
* Need to flush before writing out cells we are not collecting, also addnicm2017-03-07
| | | | some extra logging.
* When redrawing a combined UTF-8 characters in its existing position,nicm2017-03-06
| | | | | need to save and restore the cursor so that the next character goes into the right place.
* Scrolling at least needs to be flushed before sending EL to the terminalnicm2017-02-21
| | | | (but it is simpler to flush everything, so do that instead).
* Handle insert cells when cursor at edge of screen correctly, and do anicm2017-02-16
| | | | full flush before insert.
* Combining characters need a full flush.nicm2017-02-09
|
* When an ordinary (not collected) cell is received, we need to flush anynicm2017-02-09
| | | | delayed scrolling before drawing it.
* Add support for scroll up escape sequence (CSI S) and use it whennicm2017-02-08
| | | | possible instead of sending individual line feeds.
* Collect sequences of printable ASCII characters and process themnicm2017-02-08
| | | | | | | | | | | | | | | 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).
* Some other tidying bits.nicm2017-02-08
|
* Trying to avoid the occasional newline by saving the last cell on screennicm2017-02-08
| | | | | is not actually helping us much and just adds complexity, so don't bother.
* Add BCE for clear to start of screen, which was somehow missed.nicm2017-02-06
|
* Only redraw the modified character when adding combining characters, notnicm2017-02-06
| | | | the whole line.
* Fix setting the palette of aixterm colours (90-97).nicm2017-01-12
|
* Highlight all occurrences of search string after searching in copy mode.nicm2017-01-05
|
* Spacing nits.nicm2016-12-09
|
* Zero dirty count after flushing.nicm2016-10-18
|
* Add support for BCE (background colour erase). This makes various escapenicm2016-10-13
| | | | | | | | | | | | sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank cells using the current background colour rather than the default colour. On modern systems BCE doesn't really have many benefits, but most other terminals now support it, some (lazy) applications rely on it, and it is not hard to include now that we have pane background colours anyway. Mostly written by Sean Haugh.