From a754d06b44139b85e8b34a71ece4477cb1caa85e Mon Sep 17 00:00:00 2001 From: ii41 <23465321+ii41@users.noreply.github.com> Date: Sun, 27 Sep 2020 15:36:08 -0700 Subject: Add support for single line terminals This changes the minimum terminal dimensions from 2 lines and 2 columns, to 1 line and 2 columns. This also reworks the `SizeInfo` to store the number of columns and lines and consistently has only the terminal lines/columns stored, instead of including the message bar and search in some places of the Alacritty renderer/input. These new changes also make it easy to properly start the selection scrolling as soon as the mouse is over the message bar, instead of waiting until it is beyond it. Fixes #4207. Co-authored-by: Christian Duerr --- alacritty/src/cli.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'alacritty/src/cli.rs') diff --git a/alacritty/src/cli.rs b/alacritty/src/cli.rs index 047c8d2e..6303d081 100644 --- a/alacritty/src/cli.rs +++ b/alacritty/src/cli.rs @@ -205,10 +205,10 @@ impl Options { } if let Some(mut dimensions) = matches.values_of("dimensions") { - let width = dimensions.next().map(|w| w.parse().map(Column)); - let height = dimensions.next().map(|h| h.parse().map(Line)); - if let (Some(Ok(width)), Some(Ok(height))) = (width, height) { - options.dimensions = Some(Dimensions::new(width, height)); + let columns = dimensions.next().map(|columns| columns.parse().map(Column)); + let lines = dimensions.next().map(|lines| lines.parse().map(Line)); + if let (Some(Ok(columns)), Some(Ok(lines))) = (columns, lines) { + options.dimensions = Some(Dimensions { columns, lines }); } } @@ -309,7 +309,10 @@ impl Options { let dynamic_title = config.ui_config.dynamic_title() && self.title.is_none(); config.ui_config.set_dynamic_title(dynamic_title); - replace_if_some(&mut config.ui_config.window.dimensions, self.dimensions); + if let Some(dimensions) = self.dimensions { + config.ui_config.window.set_dimensions(dimensions); + } + replace_if_some(&mut config.ui_config.window.title, self.title.clone()); replace_if_some(&mut config.ui_config.window.class.instance, self.class_instance.clone()); replace_if_some(&mut config.ui_config.window.class.general, self.class_general.clone()); -- cgit