diff options
author | Christian Duerr <contact@christianduerr.com> | 2021-03-30 23:25:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-30 23:25:38 +0000 |
commit | 3bd5ac221ab3b122962063edd1f4c10f9f2d117f (patch) | |
tree | b0a367b91611e911344aec9ff35354e5a473b6aa /alacritty/src/config/window.rs | |
parent | 974392cdc6fdf1ba0d213145ae578a9316e9d404 (diff) | |
download | r-alacritty-3bd5ac221ab3b122962063edd1f4c10f9f2d117f.tar.gz r-alacritty-3bd5ac221ab3b122962063edd1f4c10f9f2d117f.tar.bz2 r-alacritty-3bd5ac221ab3b122962063edd1f4c10f9f2d117f.zip |
Unify the grid line indexing types
Previously Alacritty was using two different ways to reference lines in
the terminal. Either a `usize`, or a `Line(usize)`. These indexing
systems both served different purposes, but made it difficult to reason
about logic involving these systems because of its inconsistency.
To resolve this issue, a single new `Line(i32)` type has been
introduced. All existing references to lines and points now rely on
this definition of a line.
The indexing starts at the top of the terminal region with the line 0,
which matches the line 1 used by escape sequences. Each line in the
history becomes increasingly negative and the bottommost line is equal
to the number of visible lines minus one.
Having a system which goes into the negatives allows following the
escape sequence's indexing system closely, while at the same time making
it trivial to implement `Ord` for points.
The Alacritty UI crate is the only place which has a different indexing
system, since rendering and input puts the zero line at the top of the
viewport, rather than the top of the terminal region.
All instances which refer to a number of lines/columns instead of just a
single Line/Column have also been changed to use a `usize` instead. This
way a Line/Column will always refer to a specific place in the grid and
no confusion is created by having a count of lines as a possible index
into the grid storage.
Diffstat (limited to 'alacritty/src/config/window.rs')
-rw-r--r-- | alacritty/src/config/window.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/alacritty/src/config/window.rs b/alacritty/src/config/window.rs index 2d501b91..d74390d8 100644 --- a/alacritty/src/config/window.rs +++ b/alacritty/src/config/window.rs @@ -8,7 +8,7 @@ use serde::{Deserialize, Deserializer}; use alacritty_config_derive::ConfigDeserialize; use alacritty_terminal::config::LOG_TARGET_CONFIG; -use alacritty_terminal::index::{Column, Line}; +use alacritty_terminal::index::Column; use crate::config::ui_config::Delta; @@ -74,7 +74,7 @@ impl WindowConfig { #[inline] pub fn dimensions(&self) -> Option<Dimensions> { if self.dimensions.columns.0 != 0 - && self.dimensions.lines.0 != 0 + && self.dimensions.lines != 0 && self.startup_mode != StartupMode::Maximized { Some(self.dimensions) @@ -145,7 +145,7 @@ pub struct Dimensions { pub columns: Column, /// Window Height in character lines. - pub lines: Line, + pub lines: usize, } /// Window class hint. |