alacritty

fork of https://github.com/jwilm/alacritty, experimental
git clone git://git.thc420.xyz/alacritty
Log | Files | Refs | README

commit 45565bb9ca9ef33e38cf5e0592d3878e898ed325
parent 3931fb6fbce728c33b4ae2d1e604f181a7246fe0
Author: Elaina Martineau <elainamartineau@gmail.com>
Date:   Wed,  5 Jun 2019 18:02:20 -0600

Re-invert cursor when in selection


Diffstat:
MCHANGELOG.md | 1+
Malacritty_terminal/src/term/mod.rs | 9+++++++--
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Cells with identical foreground and background will now show their text upon selection/inversion - Default Window padding to 0x0 - Moved config option `render_timer` and `persistent_logging` to the `debug` group +- When the cursor is in the selection, it will be inverted again, making it visible ### Fixed diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs @@ -420,6 +420,10 @@ impl<'a> Iterator for RenderableCellsIter<'a> { fn next(&mut self) -> Option<Self::Item> { loop { if self.cursor_offset == self.inner.offset() && self.inner.column() == self.cursor.col { + let index = Linear::new(self.grid.num_cols(), self.cursor.col, self.cursor.line); + let selected = + self.selection.as_ref().map(|range| range.contains_(index)).unwrap_or(false); + // Handle cursor if let Some(cursor_key) = self.cursor_key.take() { let cell = Indexed { @@ -427,8 +431,9 @@ impl<'a> Iterator for RenderableCellsIter<'a> { column: self.cursor.col, line: self.cursor.line, }; + let mut renderable_cell = - RenderableCell::new(self.config, self.colors, cell, false); + RenderableCell::new(self.config, self.colors, cell, selected); renderable_cell.inner = RenderableCellContent::Cursor(cursor_key); @@ -439,7 +444,7 @@ impl<'a> Iterator for RenderableCellsIter<'a> { return Some(renderable_cell); } else { let mut cell = - RenderableCell::new(self.config, self.colors, self.inner.next()?, false); + RenderableCell::new(self.config, self.colors, self.inner.next()?, selected); if self.cursor_style == CursorStyle::Block { std::mem::swap(&mut cell.bg, &mut cell.fg);