diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/change.c | 7 | ||||
-rw-r--r-- | src/nvim/edit.c | 8 | ||||
-rw-r--r-- | src/nvim/undo.c | 7 |
3 files changed, 14 insertions, 8 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c index f4969d0ca9..ebbb0d4db6 100644 --- a/src/nvim/change.c +++ b/src/nvim/change.c @@ -43,6 +43,7 @@ #include "nvim/plines.h" #include "nvim/pos.h" #include "nvim/search.h" +#include "nvim/spell.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/textformat.h" @@ -393,6 +394,12 @@ void changed_bytes(linenr_T lnum, colnr_T col) { changedOneline(curbuf, lnum); changed_common(lnum, col, lnum + 1, 0); + // When text has been changed at the end of the line, possibly the start of + // the next line may have SpellCap that should be removed or it needs to be + // displayed. Schedule the next line for redrawing just in case. + if (spell_check_window(curwin) && lnum < curbuf->b_ml.ml_line_count) { + redrawWinline(curwin, lnum + 1); + } // notify any channels that are watching buf_updates_send_changes(curbuf, lnum, 1, 1); diff --git a/src/nvim/edit.c b/src/nvim/edit.c index 612a1a1bda..c0f094453d 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -3395,14 +3395,6 @@ static bool ins_esc(long *count, int cmdchar, bool nomove) check_spell_redraw(); - // When text has been changed in this line, possibly the start of the next - // line may have SpellCap that should be removed or it needs to be - // displayed. Schedule the next line for redrawing just in case. - if (spell_check_window(curwin) - && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) { - redrawWinline(curwin, curwin->w_cursor.lnum + 1); - } - int temp = curwin->w_cursor.col; if (disabled_redraw) { RedrawingDisabled--; diff --git a/src/nvim/undo.c b/src/nvim/undo.c index 00a3922a5b..1eb73d85d7 100644 --- a/src/nvim/undo.c +++ b/src/nvim/undo.c @@ -120,6 +120,7 @@ #include "nvim/path.h" #include "nvim/pos.h" #include "nvim/sha256.h" +#include "nvim/spell.h" #include "nvim/state.h" #include "nvim/strings.h" #include "nvim/types.h" @@ -2372,6 +2373,12 @@ static void u_undoredo(int undo, bool do_buf_event) } changed_lines(top + 1, 0, bot, newsize - oldsize, do_buf_event); + // When text has been changed, possibly the start of the next line + // may have SpellCap that should be removed or it needs to be + // displayed. Schedule the next line for redrawing just in case. + if (spell_check_window(curwin) && bot <= curbuf->b_ml.ml_line_count) { + redrawWinline(curwin, bot); + } // Set the '[ mark. if (top + 1 < curbuf->b_op_start.lnum) { |