alacritty/alacritty_terminal
Christian Duerr 4975be29df
Fix scrolling region performance with fixed lines
This resolves an issue with Alacritty's scrolling region performance
when there's a number of fixed lines at the top of the screen. This
affects commonly used applications like tmux or vim.

Instead of using separate logic for when the scrolling region starts at
the top of the screen without any fixed lines, the code should now try
to figure out the target position of these fixed lines ahead of time,
swap them into place and still perform the optimized implementation to
move the grid.

This comes with the small trade-off that since lines are swapped before
rotating the screen without clearing or removing any lines during the
rotation process, that the places the fixed lines have been swapped with
will appear out of order when using scrolling regions in the primary
screen buffer. Since the use of scrolling regions primarily affects the
alternate screen and most terminals don't keep any history at all, this
should however not cause any problems.
2020-12-10 02:10:24 +00:00
..
src Fix scrolling region performance with fixed lines 2020-12-10 02:10:24 +00:00
tests Use dynamic storage for zerowidth characters 2020-11-05 04:45:14 +00:00
Cargo.toml Fix DoS caused by excessive CSI parameter values 2020-11-26 00:57:44 +00:00
LICENSE-APACHE Add license symlinks for crates 2020-10-17 14:47:51 +00:00