fix(grid): out of bounds removal when app does not update its scroll region on resize (#4045)

This commit is contained in:
Aram Drevekenin 2025-03-06 09:42:25 +01:00 committed by GitHub
parent 2fe960a16d
commit 1a8c3d7c94
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1283,7 +1283,9 @@ impl Grid {
let mut pad_character = EMPTY_TERMINAL_CHARACTER; let mut pad_character = EMPTY_TERMINAL_CHARACTER;
pad_character.styles = self.cursor.pending_styles.clone(); pad_character.styles = self.cursor.pending_styles.clone();
for _ in 0..count { for _ in 0..count {
if scroll_region_top < self.viewport.len() {
self.viewport.remove(scroll_region_top); self.viewport.remove(scroll_region_top);
}
let columns = VecDeque::from(vec![pad_character.clone(); self.width]); let columns = VecDeque::from(vec![pad_character.clone(); self.width]);
self.viewport self.viewport
.insert(scroll_region_bottom, Row::from_columns(columns).canonical()); .insert(scroll_region_bottom, Row::from_columns(columns).canonical());