diff options
author | Christian Duerr <contact@christianduerr.com> | 2018-03-24 14:42:05 +0100 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2018-04-02 14:25:10 -0700 |
commit | 54b21b66ecc6f8f149d1425567e0e3d766a3ac54 (patch) | |
tree | 2c9a6abb9683f4110cc1bdce4f5a820dd7f677cc | |
parent | 99a5007358b1c7d4aa7e4bb3cbd6d5ef81de0abc (diff) | |
download | alacritty-54b21b66ecc6f8f149d1425567e0e3d766a3ac54.tar.gz alacritty-54b21b66ecc6f8f149d1425567e0e3d766a3ac54.zip |
Fix cursor not showing in first column
There was a bug in the display iterator where the first column was never
reached after the top line because it was instantly incremented to 1
after it was reset when iterator column reached the end of the terminal
width.
This has been fixed by making sure that the column is never incremented
when the column is reset due to a change in terminal line.
This fixes #1198.
-rw-r--r-- | src/grid/mod.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/grid/mod.rs b/src/grid/mod.rs index faf67772..0564cdf5 100644 --- a/src/grid/mod.rs +++ b/src/grid/mod.rs @@ -748,13 +748,13 @@ impl<'a, T: Copy + 'a> Iterator for DisplayIter<'a, T> { #[inline] fn next(&mut self) -> Option<Self::Item> { // Make sure indices are valid. Return None if we've reached the end. - if self.col == self.grid.num_cols() { + let next_line = self.col == self.grid.num_cols(); + if next_line { if self.offset == self.limit { return None; } self.col = Column(0); - self.offset -= 1; self.line = Line(*self.grid.lines - 1 - (self.offset - self.limit)); } @@ -766,7 +766,9 @@ impl<'a, T: Copy + 'a> Iterator for DisplayIter<'a, T> { column: self.col }); - self.col += 1; + if !next_line { + self.col += 1; + } item } } |