aboutsummaryrefslogtreecommitdiff
path: root/screen-write.c
Commit message (Collapse)AuthorAge
* Log what caused a flush for better visibility on what could be improved.nicm2020-04-16
|
* Only start and stop sync for operations like clear and scroll wherenicm2020-04-16
| | | | there is a better chance more data will be on the way.
* Add support for the iTerm2 sychronized updates escape sequence whichnicm2020-04-16
| | | | drastically reduces flickering.
* Use mode-style for selected items, like choose modes. GitHub issue 2166.nicm2020-04-15
|
* Parse out DA features.nicm2019-11-28
|
* Some minor performance improvements - most notably, don't search thenicm2019-09-24
| | | | input state table if the next character matches the same state as before.
* Couple of bits of minor cleanup.nicm2019-09-24
|
* Add support for the SD (scroll down) escape sequence, GitHub issue 1861.nicm2019-08-05
|
* Use the clear history function for the 3J sequence rather than doing it ↵nicm2019-07-08
| | | | manually.
* Correctly clear underscore colour in grid_get_cell1, also fix structnicm2019-07-06
| | | | | grid_cell to avoid padding. Fixes increased memory use reported by Suraj N Kurapati.
* Add support for underscore colours with Setulc capability, mostly fromnicm2019-06-27
| | | | Kai Moschcau.
* Allow menu items to be disabled by putting a - at the start of theirnicm2019-05-28
| | | | | name, rather than just including #[dim] which still allowed them to be chosen.
* Add a function to draw a simple menu onto a screen.nicm2019-05-10
|
* Pass target client and session to load_cfg from source-file so formatsnicm2019-04-18
| | | | work. Reported by Thomas Sattler.
* screen_write_fast_copy can no longer assume the target screen is defaultnicm2019-04-03
| | | | (it isn't for the pane status lines).
* 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.