Since ref tests were only stored whenever winit requested the window
close, they would not get stored properly when the terminal was closed
through Alacritty using `exit`, Ctrl+D or similar.
This moves the ref test code to the and of the main entry point, which
will always be executed regardless of how the terminal was shutdown.
This resolves an issue with rows only resetting partially, based on
their `occ` state. However this state is not always accurate, so more
than just the occupied elements need to be cleared.
Fixes#2340.
This should fill window with background color while it is offscreen instead of
showing it with uninitilized surface and then performing `clear`. So, the new
behavior should prevent glitches during startup. e.g. content of the windows
below, garbage from drivers and so on.
This commit fixes regression introduced in cfc20d4f34.
`self.cursor.line` forced the cursor to hold a fixed location while scrolling
until its "original" location (usually the shell prompt) went off the screen.
So cursor position should be keep updated, which can be achieved by using
`self.inner.line()`.
Fixes#2570.
This implements a block selection mode which can be triggered by holding
Control before starting a selection.
If text is copied using this block selection, newlines will be
automatically added to the end of the lines.
This fixes#526.
The dynamic color escape response would answer to requests with
rgb:0/0/0 when the color was completely black, instead of properly
responding with double-digit hex colors. This has been changed so that
Alacritty now always properly responds with the same number of hex
digits for all colors.
The number of digits has also been changed from two to four digits per
color, since that is the more commonly used format.
Using the `write!` macro was also causing problems with NeoVim,
since it caused Alacritty to write the dynamic color escape in multiple
write calls, switching to `write_all` fixed that.
Fixes#2543.
Ncurses does some special handling for backspace, normally comparing it
to the KEY_BACKSPACE constant. However to make this work, the right
backspace escape sequence needs to be set in the terminfo.
XTerm has this set to ^H, but it always sends ^H. Since Alacritty
usually sends ^? instead, this needs to be specified to allow correct
interpretation for ncurses.
This reworks the selection logic to prevent any possible index out of
bounds exceptions by clamping the start and end points before doing
anything else with them when converting selections to spans.
This also fixes a bug where semantic selections would not automatically
expand across double-width characters.
Fixes#2486.
While Gentoo was listed in the table of contents of the INSTALL.md, the
instructions to install the build dependencies were missing.
This adds the emerge command necessary to install all dependencies of
Alacritty (other than Rust) so building from source without the overlay
is possible.