summaryrefslogtreecommitdiffstats
path: root/screen-write.c
AgeCommit message (Collapse)Author
2019-11-28Parse out DA features.nicm
2019-09-24Some minor performance improvements - most notably, don't search thenicm
input state table if the next character matches the same state as before.
2019-09-24Couple of bits of minor cleanup.nicm
2019-08-05Add support for the SD (scroll down) escape sequence, GitHub issue 1861.nicm
2019-07-08Use the clear history function for the 3J sequence rather than doing it ↵nicm
manually.
2019-07-06Correctly clear underscore colour in grid_get_cell1, also fix structnicm
grid_cell to avoid padding. Fixes increased memory use reported by Suraj N Kurapati.
2019-06-27Add support for underscore colours with Setulc capability, mostly fromnicm
Kai Moschcau.
2019-05-28Allow menu items to be disabled by putting a - at the start of theirnicm
name, rather than just including #[dim] which still allowed them to be chosen.
2019-05-10Add a function to draw a simple menu onto a screen.nicm
2019-04-18Pass target client and session to load_cfg from source-file so formatsnicm
work. Reported by Thomas Sattler.
2019-04-03screen_write_fast_copy can no longer assume the target screen is defaultnicm
(it isn't for the pane status lines).
2019-03-18Extend the #[] style syntax and use that together with previous formatnicm
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.
2019-03-14Add a wrapper (struct style) around styles rather than using thenicm
grid_cell directly. There will be some non-cell members soon.
2019-03-12DECRC and DECSC apparently need to preserve origin mode as well, basednicm
on a fix from Marc Reisner.
2019-03-12Fix HPA in origin mode.nicm
2019-03-12Fix wrapping after origin mode change.nicm
2019-03-12Add support for origin mode (DECOM, SM/RM ?6), from Marc Reisner.nicm
2018-11-13Initialize context property in alignment test handler function.nicm
2018-11-12Allow style #[] in mode formats.nicm
2018-10-31Reset all flags in screen_write_reset, reported by Benjamin Poirier.nicm
2018-10-25Add a "terminal" colour which can be used instead of "default" in stylenicm
options for the terminal default colour, bypassing any inheritance from other options. Prompted by a discussion with abieber@.
2018-10-18Support for windows larger than visible on the attached client. This hasnicm
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.
2018-07-31Move struct screen_sel into screen.c and tidy up members that are onlynicm
used by copy mode.
2018-07-04Add accessors for grid linedata member, for some future work. From Dannicm
Aloni.
2018-01-12Do not collect top-bit-set characters in case they need to be replaced.nicm
2017-11-15Completely rewrite the reflow code to correctly handle double widthnicm
characters (previously they were not accounted for).
2017-11-03Support mouse on preview in tree mode.nicm
2017-11-02Make the mode draw function use the parent screen directly rather thannicm
its own to avoid copying twice.
2017-11-02Add a "fast" version of screen_write_copy for tree mode that doesn't donicm
all the checks and selection and marking stuff needed for copy mode.
2017-10-05When writing batches of characters to the screen, we need to clearnicm
padding or later UTF-8 characters could be displayed incorrectly. GitHub issue 1090.
2017-08-09Add -F to choose-tree, choose-client, choose-buffer to specify thenicm
format of each line, as well as adding a couple of formats needed for the default display.
2017-06-30Try to show a better preview of sessions and windows in tree mode.nicm
2017-06-12Need to flush out the linefeed after wrapper. GitHub issue 970.nicm
2017-06-04Typo/style; plus man page escaping from jmc.nicm
2017-05-31Style and spacing nits.nicm
2017-05-30Rewrite of choose mode, both to simplify and tidy the code and to addnicm
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.
2017-05-12Need to store bg for ECH.nicm
2017-05-12Need to clear tty context before using it.nicm
2017-05-12Scrolling needs to use background colour.nicm
2017-05-12ECH needs to use background colour.nicm
2017-05-11Clear to start of screen needs to use background colour.nicm
2017-04-29Fix UTF-8 combining characters in column 0, based on a diff from Keithnicm
Winstein.
2017-04-25Make full width panes try to play more nicely with terminal copy andnicm
paste by avoiding explicit line wraps if we think the terminal will wrap anyway.
2017-04-22Can't collect UTF-8 characters of more than one byte at the moment.nicm
2017-03-07Need to flush before writing out cells we are not collecting, also addnicm
some extra logging.
2017-03-06When redrawing a combined UTF-8 characters in its existing position,nicm
need to save and restore the cursor so that the next character goes into the right place.
2017-02-21Scrolling at least needs to be flushed before sending EL to the terminalnicm
(but it is simpler to flush everything, so do that instead).
2017-02-16Handle insert cells when cursor at edge of screen correctly, and do anicm
full flush before insert.
2017-02-09Combining characters need a full flush.nicm
2017-02-09When an ordinary (not collected) cell is received, we need to flush anynicm
delayed scrolling before drawing it.