aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2018-03-24 14:42:05 +0100
committerJoe Wilm <jwilm@users.noreply.github.com>2018-04-02 14:25:10 -0700
commit54b21b66ecc6f8f149d1425567e0e3d766a3ac54 (patch)
tree2c9a6abb9683f4110cc1bdce4f5a820dd7f677cc
parent99a5007358b1c7d4aa7e4bb3cbd6d5ef81de0abc (diff)
downloadalacritty-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.rs8
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
}
}