diff options
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r-- | src/nvim/ui.c | 14 |
1 files changed, 8 insertions, 6 deletions
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; } |