diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/tui/tui.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c index 58d1b09d55..e80d1cdc59 100644 --- a/src/nvim/tui/tui.c +++ b/src/nvim/tui/tui.c @@ -88,6 +88,7 @@ typedef struct {    bool cont_received;    UGrid grid;    kvec_t(Rect) invalid_regions; +  bool did_resize;    int row, col;    int out_fd;    bool scroll_region_is_full_screen; @@ -738,6 +739,14 @@ static void clear_region(UI *ui, int top, int bot, int left, int right,        cursor_goto(ui, row, col);        print_cell(ui, cell);      }); + +    if (data->did_resize && top == 0) { +      // TODO(bfredl): the first line of the screen doesn't gets properly +      // cleared after resize by the loop above, so redraw the final state +      // after the next flush. +      invalidate(ui, 0, bot, left, right); +      data->did_resize = false; +    }    }    // restore cursor @@ -813,6 +822,7 @@ static void tui_grid_resize(UI *ui, Integer g, Integer width, Integer height)    TUIData *data = ui->data;    UGrid *grid = &data->grid;    ugrid_resize(grid, (int)width, (int)height); +  data->did_resize = true;    // resize might not always be followed by a clear before flush    // so clip the invalid region | 
