diff options
author | Utkarsh Maheshwari <utkarshme96@gmail.com> | 2018-05-19 21:03:17 +0530 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-12-31 12:44:21 +0100 |
commit | f102f50ebeca98365b308463c25eb2caffffba51 (patch) | |
tree | 1521fac8bc7ca1bde148f4839bc3bf4e062edcb3 /src/nvim/window.c | |
parent | c9b559a0308714ef8ad396eb340a4af580e44d74 (diff) | |
download | rneovim-f102f50ebeca98365b308463c25eb2caffffba51.tar.gz rneovim-f102f50ebeca98365b308463c25eb2caffffba51.tar.bz2 rneovim-f102f50ebeca98365b308463c25eb2caffffba51.zip |
multigrid: Change screen_* functions to grid_* functions
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index 8be79f0cff..4d2b238b7a 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -3958,6 +3958,8 @@ win_free ( xfree(wp->w_p_cc_cols); + win_free_grid(wp, false); + if (wp != aucmd_win) win_remove(wp, tp); if (autocmd_busy) { @@ -3970,6 +3972,20 @@ win_free ( unblock_autocmds(); } +void win_free_grid(win_T *wp, bool reinit) +{ + if (wp->w_grid.handle != 0 && ui_is_external(kUIMultigrid)) { + ui_call_grid_destroy(wp->w_grid.handle); + wp->w_grid.handle = 0; + } + free_screengrid(&wp->w_grid); + if (reinit) { + // if a float is turned into a split and back into a float, the grid + // data structure will be reused + memset(&wp->w_grid, 0, sizeof(wp->w_grid)); + } +} + /* * Append window "wp" in the window list after window "after". */ @@ -4247,6 +4263,7 @@ void win_setheight_win(int height, win_T *win) } frame_setheight(win->w_frame, height + win->w_status_height); + win_grid_alloc(win, false); /* recompute the window positions */ row = win_comp_pos(); @@ -4256,7 +4273,7 @@ void win_setheight_win(int height, win_T *win) * line, clear it. */ if (full_screen && msg_scrolled == 0 && row < cmdline_row) - screen_fill(row, cmdline_row, 0, (int)Columns, ' ', ' ', 0); + grid_fill(&default_grid, row, cmdline_row, 0, (int)Columns, ' ', ' ', 0); cmdline_row = row; msg_row = row; msg_col = 0; @@ -4443,6 +4460,7 @@ void win_setwidth_win(int width, win_T *wp) } frame_setwidth(wp->w_frame, width + wp->w_vsep_width); + win_grid_alloc(wp, false); /* recompute the window positions */ (void)win_comp_pos(); @@ -4706,7 +4724,7 @@ void win_drag_status_line(win_T *dragwin, int offset) fr = fr->fr_next; } row = win_comp_pos(); - screen_fill(row, cmdline_row, 0, (int)Columns, ' ', ' ', 0); + grid_fill(&default_grid, row, cmdline_row, 0, (int)Columns, ' ', ' ', 0); cmdline_row = row; p_ch = Rows - cmdline_row; if (p_ch < 1) @@ -5054,7 +5072,7 @@ void command_height(void) /* clear the lines added to cmdline */ if (full_screen) - screen_fill(cmdline_row, (int)Rows, 0, + grid_fill(&default_grid, cmdline_row, (int)Rows, 0, (int)Columns, ' ', ' ', 0); msg_row = cmdline_row; redraw_cmdline = TRUE; |