1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-18 13:55:23 -05:00

Merge pull request #220 from mbrumlow/resize_fix

Fixing resize crashes.
This commit is contained in:
Joe Wilm 2017-01-07 17:16:50 -08:00 committed by GitHub
commit 3c2bfdc0fc

View file

@ -475,8 +475,8 @@ impl Term {
let old_cols = self.size_info.cols(); let old_cols = self.size_info.cols();
let old_lines = self.size_info.lines(); let old_lines = self.size_info.lines();
let num_cols = size.cols(); let mut num_cols = size.cols();
let num_lines = size.lines(); let mut num_lines = size.lines();
self.size_info = size; self.size_info = size;
@ -484,6 +484,16 @@ impl Term {
return; return;
} }
// Should not allow less than 1 col, causes all sorts of checks to be required.
if num_cols <= Column(1) {
num_cols = Column(2);
}
// Should not allow less than 1 line, causes all sorts of checks to be required.
if num_lines <= Line(1) {
num_lines = Line(2);
}
// Scroll up to keep cursor and as much context as possible in grid. // Scroll up to keep cursor and as much context as possible in grid.
// This only runs when the lines decreases. // This only runs when the lines decreases.
self.scroll_region = Line(0)..self.grid.num_lines(); self.scroll_region = Line(0)..self.grid.num_lines();
@ -513,10 +523,12 @@ impl Term {
self.tabs[0] = false; self.tabs[0] = false;
// Make sure bottom of terminal is clear if num_lines > old_lines {
let template = self.empty_cell; // Make sure bottom of terminal is clear
self.grid.clear_region((self.cursor.line).., |c| c.reset(&template)); let template = self.empty_cell;
self.alt_grid.clear_region((self.cursor.line).., |c| c.reset(&template)); self.grid.clear_region((self.cursor.line + 1).., |c| c.reset(&template));
self.alt_grid.clear_region((self.cursor.line + 1).., |c| c.reset(&template));
}
// Reset scrolling region to new size // Reset scrolling region to new size
self.scroll_region = Line(0)..self.grid.num_lines(); self.scroll_region = Line(0)..self.grid.num_lines();