aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorUtkarsh Maheshwari <utkarshme96@gmail.com>2018-09-04 02:45:29 +0530
committerBjörn Linse <bjorn.linse@gmail.com>2018-12-31 12:44:22 +0100
commit62be9f39ef9cd8592ac0048ba2840aa65cbc1849 (patch)
tree3c31f39d391baf35f85e2dbea2677f2e2f06e405 /src
parent16c3337122955c1e18c5ff69dcb14b61c43c4ac0 (diff)
downloadrneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.tar.gz
rneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.tar.bz2
rneovim-62be9f39ef9cd8592ac0048ba2840aa65cbc1849.zip
multigrid: Fix sending window grid handle in ext_newline mode
Diffstat (limited to 'src')
-rw-r--r--src/nvim/screen.c8
-rw-r--r--src/nvim/ui.c14
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;
}