aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/grid.rs6
-rw-r--r--tests/basic.rs19
2 files changed, 25 insertions, 0 deletions
diff --git a/src/grid.rs b/src/grid.rs
index 50942f4..d7abbad 100644
--- a/src/grid.rs
+++ b/src/grid.rs
@@ -45,6 +45,12 @@ impl Grid {
}
pub fn set_size(&mut self, size: Size) {
+ if size.cols != self.size.cols {
+ for row in &mut self.rows {
+ row.wrap(false);
+ }
+ }
+
self.size = size;
if self.scroll_bottom >= size.rows {
diff --git a/tests/basic.rs b/tests/basic.rs
index afb090a..4478218 100644
--- a/tests/basic.rs
+++ b/tests/basic.rs
@@ -44,6 +44,25 @@ fn set_size() {
parser.process(b"\x1b[?1049l");
assert_eq!(parser.screen().size(), (24, 80));
assert_eq!(parser.screen().cursor_position(), (23, 4));
+
+ parser.screen_mut().set_size(34, 8);
+ parser.process(b"\x1bc01234567890123456789");
+ assert_eq!(
+ parser.screen().contents(0, 0, 33, 7),
+ "01234567890123456789"
+ );
+
+ parser.screen_mut().set_size(24, 80);
+ assert_eq!(
+ parser.screen().contents(0, 0, 23, 79),
+ "01234567\n89012345\n6789"
+ );
+
+ parser.screen_mut().set_size(34, 8);
+ assert_eq!(
+ parser.screen().contents(0, 0, 23, 79),
+ "01234567\n89012345\n6789"
+ );
}
#[test]