aboutsummaryrefslogtreecommitdiff
path: root/screen-redraw.c
Commit message (Collapse)AuthorAge
* In order that people can use formats like #D in #() in the status linenicm2017-05-01
| | | | | | | | | | | | | | and not have to wait for an update when they change pane, we allow commands to run more than once a second if the expanded form changes. Unfortunately this can mean them being run far too often (pretty much continually) when multiple clients exist, because some formats (including #D) will always differ between clients. To avoid this, give each client its own tree of jobs which means that the same command will be different instances for each client - similar to how we have the tag to separate commands for different panes. GitHub issue 889; test case reported by Paul Johnson.
* Give each client a name. This defaults to the tty name as before butnicm2017-04-05
| | | | | | | 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.
* Add a helper to store a cell, and some tidying.nicm2017-02-08
|
* Add a window or pane id "tag" to each format tree and use it to separatenicm2017-02-03
| | | | | | jobs, this means that if the same job is used for different windows or panes (for example in pane-border-format), it will be run separately for each pane.
* Add support for the OSC 4 and OSC 104 palette setting escape sequences,nicm2017-01-07
| | | | from S Gilles.
* 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.
* Compare to see if pane status line has actually changed, not just size, andnicm2016-10-12
| | | | do not draw if pane is not visible.
* Loads more static, except for cmd-*.c and window-*.c.nicm2016-10-10
|
* Make the CLIENT_STATUS flag imply that pane status lines are redrawn ifnicm2016-10-09
| | | | | they are enabled and break the actual screen generation code into a separate function. Fixes problems reported by Romain Francoise.
* Instead of representing colours in several different forms with variousnicm2016-07-15
| | | | | | cell flags, convert to use an int with flags marking 256 or RGB colours in the top byte (except in cells, which we don't want to make any bigger). From Brad Town.
* Add option to include status text in the pane borders. Ifnicm2016-04-29
| | | | | | | | | pane-border-status is set to "top" or "bottom" (rather than "off"), every pane has a permanent top or bottom border containing the text from pane-border-format. Based on a diff sent long ago by Jonathan Slenders, mostly rewritten and simplified by me.
* I no longer use my SourceForge address so replace it.nicm2016-01-19
|
* Make the marked pane a cmd_find_state.nicm2015-12-15
|
* Move struct options into options.c.nicm2015-10-27
|
* Add support for a single "marked pane". There is one marked pane in thenicm2015-06-04
| | | | | | | | | server at a time; it may be toggled or cleared with select-pane -m and -M (the border is highlighted). A new target '~' or '{marked}' specifies the marked pane to commands and it is the default target for the swap-pane and join-pane -s flag (this makes them much simpler to use - mark the source pane and then change to the target pane to run swapp or joinp).
* If status line is at the top, the offset needs to be adjusted whennicm2015-05-07
| | | | drawing pane numbers. Based on a diff from John O'Meara.
* Support setting the default window and pane background colours (windownicm2015-04-19
| | | | | and active pane via window-style and window-active-style options, an individual pane by a new select-pane -P flag). From J Raynor.
* Move pane border options to window options rather than session, from Marc Finet.nicm2015-02-06
|
* Label windows which are smaller than expected with a reason.nicm2014-11-14
|
* Having three *clock* files is ridiculous, remove clock.c.nicm2014-03-31
|
* Break up and simplify screen_redraw_screen.nicm2014-01-31
|
* Allow replacing each of the many sets of separate foo-{fg,bg,attr}nicm2014-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | options with a single foo-style option. For example: set -g status-fg yellow set -g status-bg red set -g status-attr blink Becomes: set -g status-style fg=yellow,bg=red,blink The -a flag to set can be used to add to rather than replace a style. So: set -g status-bg red Becomes: set -ag status-style bg=red Currently this is fully backwards compatible (all *-{fg,bg,attr} options remain) but the plan is to deprecate them over time. From Tiago Cunha.
* When only two panes in a window, only draw half the separating line asNicholas Marriott2013-03-25
| | | | active.
* Do not redraw panes if invisible.Nicholas Marriott2013-03-25
|
* Use a predefined structure for not-space cells used to set attributes.Nicholas Marriott2012-05-23
|
* Add an option to move the status line to the top of the screen,Nicholas Marriott2012-01-29
| | | | requested by many.
* Show pane size in top right of display panes mode.Nicholas Marriott2012-01-21
|
* Make window_pane_index work the same as window_index, from Ben Boeckel.Nicholas Marriott2011-11-15
|
* Do not continue to send data to suspended/locked clients or there willNicholas Marriott2011-07-08
| | | | | | be a huge rush of it after they are resumed/unlocked. The main output path was fine but status line updates and the terminal state reset code were missed.
* Use UTF-8 line drawing characters on UTF-8 terminals. Fixes some stupidNicholas Marriott2010-09-11
| | | | | | | | terminals (I'm looking at you, putty) which disable the vt100 ACS mode switching sequences in UTF-8 mode. Also on terminals without ACS at all, use ASCII equivalents where obvious.
* Option to display the active pane in a different colour with the display-panesNicholas Marriott2010-02-04
| | | | command. From Paul Hoffman, thanks.
* Options to set the colour of the pane borders, with different colours for theNicholas Marriott2010-01-03
| | | | active pane.
* Massive spaces->tabs and trailing whitespace cleanup, hopefully for the lastNicholas Marriott2009-12-03
| | | | | time now I've configured emacs to make them displayed in really annoying colours...
* Add a minor optimisatin: if the character being printed is space, don't worryNicholas Marriott2009-10-28
| | | | about setting the background colour or attributes (except reverse).
* Similarly add a tty_cursor_pane function to tidy up most of the calls.Nicholas Marriott2009-10-12
|
* Permit options such as status-bg to be configured using the entire 256 colourNicholas Marriott2009-09-10
| | | | palette by setting "colour0" to "colour255".
* Add a new display-panes command, with two options (display-panes-colour andNicholas Marriott2009-08-31
| | | | | display-panes-time), which displays a visual indication of the number of each pane.
* Reset the attributes after drawing all or part of the screen, and reset theNicholas Marriott2009-08-10
| | | | | | region before poll(2). This reduces (but does not eliminate) the chance of the attributes not being normal if tmux is disconnected without warning (ssh ~., reboot from inside, etc).
* Pass the ACS border characters through tty_get_acs so they appear correctly onNicholas Marriott2009-07-31
| | | | terminals which don't use the standard set.
* Use the full range of ACS line drawing characters to draw pane borders,Nicholas Marriott2009-07-24
| | | | including intersections.
* Simplify screen redrawing by drawing the border and background together ratherNicholas Marriott2009-07-24
| | | | | than border separately, and consolidating all the drawing characters into one string.
* For some reason when clearing status/message it was redrawing the entire clientNicholas Marriott2009-07-14
| | | | | not just the status line. Changing this also revealed the check for the status line was incorrect when drawing the pane.
* Instead of faking up a status line in status_redraw, use the same code toNicholas Marriott2009-07-14
| | | | | | redraw it as to draw the entire screen, just skip all lines but the last. This makes horizontal split redraw properly when the status line is off.
* Get rid of the PANE_HIDDEN flag in favour of a function, and moving theNicholas Marriott2009-07-14
| | | | | | | | decision for whether or not a pane should be drawn out of the layout code and into the redraw code. This is needed for the new layout design, getting it in now to make that easier to work on.
* Unused variables. Found by lint, no binary change.Nicholas Marriott2009-06-25
|
* Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott2009-06-01
terminal to be switched between several different windows and programs displayed on one terminal be detached from one terminal and moved to another. ok deraadt pirofti