Add box cursor to unfocused underline and beam

Because some people have requested this change, the beam and underline
cursors now also transform into an empty box when the terminal loses
focus. Like this there is one unique symbol to indicate that a terminal
is not currently focused.
This commit is contained in:
Christian Duerr 2017-12-13 18:24:12 +01:00 committed by Joe Wilm
parent 44251d9dbb
commit 6eb634a2b8
2 changed files with 16 additions and 16 deletions

View File

@ -255,7 +255,7 @@ pub fn get_beam_cursor_glyph(
});
}
// Returns a custom beam cursor character
// Returns a custom box cursor character
pub fn get_box_cursor_glyph(
ascent: i32,
height: i32,

View File

@ -136,12 +136,7 @@ impl<'a> RenderableCellsIter<'a> {
}.initialize(cursor_style, window_focused)
}
fn populate_block_cursor(&mut self, window_focused: bool) {
if !window_focused {
self.populate_cursor(font::BOX_CURSOR_CHAR, ' ');
return;
}
fn populate_block_cursor(&mut self) {
let (text_color, cursor_color) = if self.config.custom_cursor_colors() {
(
Color::Named(NamedColor::CursorText),
@ -233,15 +228,20 @@ impl<'a> RenderableCellsIter<'a> {
fn initialize(mut self, cursor_style: CursorStyle, window_focused: bool) -> Self {
if self.cursor_is_visible() {
match cursor_style {
CursorStyle::Block => {
self.populate_block_cursor(window_focused);
},
CursorStyle::Beam => {
self.populate_beam_cursor();
},
CursorStyle::Underline => {
self.populate_underline_cursor();
if !window_focused {
// Render the box cursor if the window is not focused
self.populate_cursor(font::BOX_CURSOR_CHAR, ' ');
} else {
match cursor_style {
CursorStyle::Block => {
self.populate_block_cursor();
},
CursorStyle::Beam => {
self.populate_beam_cursor();
},
CursorStyle::Underline => {
self.populate_underline_cursor();
}
}
}
} else {