Ensure cursor position is correct when filling line buffer

This commit is contained in:
Kovid Goyal 2021-03-18 10:36:33 +05:30
parent 4a996c1f76
commit ccafdacc6f
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
2 changed files with 3 additions and 0 deletions

View file

@ -330,6 +330,7 @@ screen_resize(Screen *self, unsigned int lines, unsigned int columns) {
if (!historybuf_pop_line(self->historybuf, self->alt_linebuf->line)) break;
INDEX_DOWN;
linebuf_copy_line_to(self->main_linebuf, self->alt_linebuf->line, 0);
self->cursor->y++;
}
}
return true;

View file

@ -318,8 +318,10 @@ def assert_lines(*lines):
# Height increased, width unchanged → pull down lines to fill new space at the top
s = prepare_screen(map(str, range(6)))
assert_lines('2', '3', '4', '5', '')
dist_from_bottom = s.lines - s.cursor.y
s.resize(7, s.columns)
assert_lines('0', '1', '2', '3', '4', '5', '')
self.ae(dist_from_bottom, s.lines - s.cursor.y)
# Height increased, width increased → rewrap, pull down
s = prepare_screen(['0', '1', '2', '3' * 15])