aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/buffer_defs.h1
-rw-r--r--src/nvim/edit.c4
-rw-r--r--src/nvim/globals.h2
-rw-r--r--src/nvim/misc1.c2
-rw-r--r--src/nvim/normal.c4
5 files changed, 6 insertions, 7 deletions
diff --git a/src/nvim/buffer_defs.h b/src/nvim/buffer_defs.h
index 1b0af8aa49..2e6f24d9c4 100644
--- a/src/nvim/buffer_defs.h
+++ b/src/nvim/buffer_defs.h
@@ -1035,6 +1035,7 @@ struct window_S {
// current virtual column
linenr_T w_last_cursorline; ///< where last 'cursorline' was drawn
+ pos_T w_last_cursormoved; ///< for CursorMoved event
// the next seven are used to update the visual part
char w_old_visual_mode; ///< last known VIsual_mode
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index a0dce5ff7d..5947b6b1b0 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -1376,7 +1376,7 @@ ins_redraw (
// Trigger CursorMoved if the cursor moved. Not when the popup menu is
// visible, the command might delete it.
if (ready && (has_event(EVENT_CURSORMOVEDI) || curwin->w_p_cole > 0)
- && !equalpos(last_cursormoved, curwin->w_cursor)
+ && !equalpos(curwin->w_last_cursormoved, curwin->w_cursor)
&& !pum_visible()) {
// Need to update the screen first, to make sure syntax
// highlighting is correct after making a change (e.g., inserting
@@ -1392,7 +1392,7 @@ ins_redraw (
ins_apply_autocmds(EVENT_CURSORMOVEDI);
}
conceal_cursor_moved = true;
- last_cursormoved = curwin->w_cursor;
+ curwin->w_last_cursormoved = curwin->w_cursor;
}
// Trigger TextChangedI if changedtick differs.
diff --git a/src/nvim/globals.h b/src/nvim/globals.h
index 004b3252da..a4d31c0c08 100644
--- a/src/nvim/globals.h
+++ b/src/nvim/globals.h
@@ -788,8 +788,6 @@ EXTERN char_u *autocmd_fname INIT(= NULL); // fname for <afile> on cmdline
EXTERN int autocmd_bufnr INIT(= 0); // fnum for <abuf> on cmdline
EXTERN char_u *autocmd_match INIT(= NULL); // name for <amatch> on cmdline
EXTERN int did_cursorhold INIT(= false); // set when CursorHold t'gerd
-// for CursorMoved event
-EXTERN pos_T last_cursormoved INIT(= { 0, 0, 0 });
EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */
EXTERN int postponed_split_flags INIT(= 0); /* args for win_split() */
diff --git a/src/nvim/misc1.c b/src/nvim/misc1.c
index d06fa8f762..e5c22e5be3 100644
--- a/src/nvim/misc1.c
+++ b/src/nvim/misc1.c
@@ -2175,7 +2175,7 @@ static void changed_common(linenr_T lnum, colnr_T col, linenr_T lnume, long xtra
/* when the cursor line is changed always trigger CursorMoved */
if (lnum <= curwin->w_cursor.lnum
&& lnume + (xtra < 0 ? -xtra : xtra) > curwin->w_cursor.lnum)
- last_cursormoved.lnum = 0;
+ curwin->w_last_cursormoved.lnum = 0;
}
/*
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index f12abd362f..8da64bf01b 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -1187,12 +1187,12 @@ static void normal_check_cursor_moved(NormalState *s)
{
// Trigger CursorMoved if the cursor moved.
if (!finish_op && (has_event(EVENT_CURSORMOVED) || curwin->w_p_cole > 0)
- && !equalpos(last_cursormoved, curwin->w_cursor)) {
+ && !equalpos(curwin->w_last_cursormoved, curwin->w_cursor)) {
if (has_event(EVENT_CURSORMOVED)) {
apply_autocmds(EVENT_CURSORMOVED, NULL, NULL, false, curbuf);
}
- last_cursormoved = curwin->w_cursor;
+ curwin->w_last_cursormoved = curwin->w_cursor;
}
}