From 9bdac6b50aa911cd8f94624a1084a1ba35be6ed4 Mon Sep 17 00:00:00 2001 From: Christian Duerr Date: Sun, 3 Dec 2017 21:38:42 +0000 Subject: Add cursor style option (#928) The default cursor can now be configured through the cursor_style field of the config. Valid options include Block, Underline, and Beam. The default can be restored by sending \e[0q as in VTE terminals. Live config reloading is supported for this parameter. --- src/term/mod.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/term') diff --git a/src/term/mod.rs b/src/term/mod.rs index 51620762..6bce8451 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -708,7 +708,11 @@ pub struct Term { /// Original colors from config original_colors: color::List, - cursor_style: CursorStyle, + /// Current style of the cursor + cursor_style: Option, + + /// Default style for resetting the cursor + default_cursor_style: CursorStyle, } /// Terminal size info @@ -773,7 +777,7 @@ impl Term { self.next_title.take() } - pub fn new(config : &Config, size: SizeInfo) -> Term { + pub fn new(config: &Config, size: SizeInfo) -> Term { let template = Cell::default(); let num_cols = size.cols(); @@ -810,7 +814,8 @@ impl Term { color_modified: [false; color::COUNT], original_colors: color::List::from(config.colors()), semantic_escape_chars: config.selection().semantic_escape_chars.clone(), - cursor_style: CursorStyle::Block, + cursor_style: None, + default_cursor_style: config.cursor_style(), } } @@ -835,6 +840,7 @@ impl Term { } } self.visual_bell.update_config(config); + self.default_cursor_style = config.cursor_style(); } #[inline] @@ -1003,7 +1009,7 @@ impl Term { self.mode, config, selection, - self.cursor_style, + self.cursor_style.unwrap_or(self.default_cursor_style), ) } @@ -1869,7 +1875,7 @@ impl ansi::Handler for Term { } #[inline] - fn set_cursor_style(&mut self, style: CursorStyle) { + fn set_cursor_style(&mut self, style: Option) { trace!("set_cursor_style {:?}", style); self.cursor_style = style; } -- cgit v1.2.3-54-g00ecf