diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2020-04-15 06:50:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-15 03:50:34 +0000 |
commit | 33abfe34a86863958e70a6b5109eab5740a6bc81 (patch) | |
tree | 7a35c4e477f87a97694c6d2562131a59ab128e05 /alacritty/src/event.rs | |
parent | ab2db49af5467ec972e297259dd8c23022783347 (diff) | |
download | r-alacritty-33abfe34a86863958e70a6b5109eab5740a6bc81.tar.gz r-alacritty-33abfe34a86863958e70a6b5109eab5740a6bc81.tar.bz2 r-alacritty-33abfe34a86863958e70a6b5109eab5740a6bc81.zip |
Add config option to set cursor thickness
Fixes #3526.
Diffstat (limited to 'alacritty/src/event.rs')
-rw-r--r-- | alacritty/src/event.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/alacritty/src/event.rs b/alacritty/src/event.rs index e532ac12..3f2e3f77 100644 --- a/alacritty/src/event.rs +++ b/alacritty/src/event.rs @@ -49,13 +49,14 @@ use crate::window::Window; #[derive(Default, Clone, Debug, PartialEq)] pub struct DisplayUpdate { pub dimensions: Option<PhysicalSize<u32>>, - pub message_buffer: Option<()>, + pub message_buffer: bool, pub font: Option<Font>, + pub cursor: bool, } impl DisplayUpdate { fn is_empty(&self) -> bool { - self.dimensions.is_none() && self.font.is_none() && self.message_buffer.is_none() + self.dimensions.is_none() && self.font.is_none() && !self.message_buffer && !self.cursor } } @@ -255,7 +256,7 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon } fn pop_message(&mut self) { - self.display_update_pending.message_buffer = Some(()); + self.display_update_pending.message_buffer = true; self.message_buffer.pop(); } @@ -526,7 +527,7 @@ impl<N: Notify + OnResize> Processor<N> { Event::ConfigReload(path) => Self::reload_config(&path, processor), Event::Message(message) => { processor.ctx.message_buffer.push(message); - processor.ctx.display_update_pending.message_buffer = Some(()); + processor.ctx.display_update_pending.message_buffer = true; processor.ctx.terminal.dirty = true; }, Event::MouseCursorDirty => processor.reset_mouse_cursor(), @@ -659,7 +660,7 @@ impl<N: Notify + OnResize> Processor<N> { T: EventListener, { processor.ctx.message_buffer.remove_target(LOG_TARGET_CONFIG); - processor.ctx.display_update_pending.message_buffer = Some(()); + processor.ctx.display_update_pending.message_buffer = true; let config = match config::reload_from(&path) { Ok(config) => config, @@ -671,6 +672,13 @@ impl<N: Notify + OnResize> Processor<N> { processor.ctx.terminal.update_config(&config); + // Reload cursor if we've changed its thickness + if (processor.ctx.config.cursor.thickness() - config.cursor.thickness()).abs() + > std::f64::EPSILON + { + processor.ctx.display_update_pending.cursor = true; + } + if processor.ctx.config.font != config.font { // Do not update font size if it has been changed at runtime if *processor.ctx.font_size == processor.ctx.config.font.size { |