Copy old cells to new cells when resizing

Previously all cells were erased which resulted in the screen becoming
blank in some places until it was redrawn.
This commit is contained in:
Leroy Hopson 2020-09-25 10:25:46 +07:00
parent 66b061bf8b
commit ada8b1087d

View file

@ -536,7 +536,7 @@ void Terminal::update_size()
Godot::print(String("resized_rows: {0}, resized_cols: {1}").format(Array::make(rows, cols))); Godot::print(String("resized_rows: {0}, resized_cols: {1}").format(Array::make(rows, cols)));
cells = {}; Cells new_cells = {};
for (int x = 0; x < rows; x++) for (int x = 0; x < rows; x++)
{ {
@ -544,12 +544,21 @@ void Terminal::update_size()
for (int y = 0; y < cols; y++) for (int y = 0; y < cols; y++)
{ {
row[y] = empty_cell; if (x < cells.size() && y < cells[x].size())
{
row[y] = cells[x][y];
}
else
{
row[y] = empty_cell;
}
} }
cells.push_back(row); new_cells.push_back(row);
} }
cells = new_cells;
tsm_screen_resize(screen, cols, rows); tsm_screen_resize(screen, cols, rows);
sleep = false; sleep = false;