diff options
author | Utkarsh Maheshwari <utkarshme96@gmail.com> | 2018-09-04 02:45:29 +0530 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-12-31 12:44:22 +0100 |
commit | 62be9f39ef9cd8592ac0048ba2840aa65cbc1849 (patch) | |
tree | 3c31f39d391baf35f85e2dbea2677f2e2f06e405 | |
parent | 16c3337122955c1e18c5ff69dcb14b61c43c4ac0 (diff) | |
download | rneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.tar.gz rneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.tar.bz2 rneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.zip |
multigrid: Fix sending window grid handle in ext_newline mode
-rw-r--r-- | src/nvim/screen.c | 8 | ||||
-rw-r--r-- | src/nvim/ui.c | 14 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c index f58dff675e..945879cd21 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -1579,8 +1579,6 @@ static void win_update(win_T *wp) } } - wp->w_grid.was_resized = false; - /* restore got_int, unless CTRL-C was hit while redrawing */ if (!got_int) got_int = save_got_int; @@ -5976,6 +5974,7 @@ void win_grid_alloc(win_T *wp, int doclear) ScreenGrid *grid = &wp->w_grid; int rows = grid->internal_rows; int columns = grid->internal_columns; + int was_resized = false; if (rows == 0) { rows = wp->w_height; @@ -6002,7 +6001,7 @@ void win_grid_alloc(win_T *wp, int doclear) grid->Rows = rows; grid->Columns = columns; } - grid->was_resized = true; + was_resized = true; } grid->OffsetRow = wp->w_winrow; @@ -6012,8 +6011,7 @@ void win_grid_alloc(win_T *wp, int doclear) // - a grid was just resized // - screen_resize was called and all grid sizes must be sent // - the UI wants multigrid event (necessary) - if ((send_grid_resize || grid->was_resized) - && ui_is_external(kUIMultigrid)) { + if ((send_grid_resize || was_resized) && ui_is_external(kUIMultigrid)) { ui_call_grid_resize(grid->handle, grid->Columns, grid->Rows); } } diff --git a/src/nvim/ui.c b/src/nvim/ui.c index 74814bf0ae..89c0069e58 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -347,15 +347,17 @@ void ui_cursor_goto(int new_row, int new_col) void ui_grid_cursor_goto(ScreenGrid *grid, int new_row, int new_col) { - int off_row = (ui_is_external(kUIMultigrid) ? 0 : grid->OffsetRow); - int off_col = (ui_is_external(kUIMultigrid) ? 0 : grid->OffsetColumn); + new_row += ui_is_external(kUIMultigrid) ? 0 : grid->OffsetRow; + new_col += ui_is_external(kUIMultigrid) ? 0 : grid->OffsetColumn; + int handle = ui_is_external(kUIMultigrid) ? grid->handle : DEFAULT_GRID_HANDLE; - if (new_row + off_row == row && new_col + off_col == col) { + if (new_row == row && new_col == col && handle == cursor_grid_handle) { return; } - row = new_row + off_row; - col = new_col + off_col; - cursor_grid_handle = grid->handle; + + row = new_row; + col = new_col; + cursor_grid_handle = handle; pending_cursor_update = true; } |