diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-09-14 21:01:23 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-09-14 21:01:23 +0200 |
commit | 017ba07fa2cdc578245618717229444fd50c470d (patch) | |
tree | d848d329da08cbda1e846d6e7acf1a440f61d667 /src/main.c | |
parent | d9b0d83b13d2691e4544709abd87eac004715175 (diff) | |
download | vim-git-017ba07fa2cdc578245618717229444fd50c470d.tar.gz |
patch 8.1.2029: cannot control 'cursorline' highlighting wellv8.1.2029
Problem: Cannot control 'cursorline' highlighting well.
Solution: Add "screenline". (Christian Brabandt, closes #4933)
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c index 6fe581ce7..d1d9e32e4 100644 --- a/src/main.c +++ b/src/main.c @@ -1255,12 +1255,28 @@ main_loop( update_topline(); validate_cursor(); +#ifdef FEAT_SYN_HL + if (curwin->w_p_cul && curwin->w_p_wrap + && (curwin->w_p_culopt_flags & CULOPT_SCRLINE)) + must_redraw = NOT_VALID; +#endif + if (VIsual_active) - update_curbuf(INVERTED);/* update inverted part */ + update_curbuf(INVERTED); // update inverted part else if (must_redraw) { - mch_disable_flush(); /* Stop issuing gui_mch_flush(). */ - update_screen(0); + mch_disable_flush(); // Stop issuing gui_mch_flush(). +#ifdef FEAT_SYN_HL + // Might need some more update for the cursorscreen line. + // TODO: can we optimize this? + if (curwin->w_p_cul + && curwin->w_p_wrap + && (curwin->w_p_culopt_flags & CULOPT_SCRLINE) + && !char_avail()) + update_screen(VALID); + else +#endif + update_screen(0); mch_enable_flush(); } else if (redraw_cmdline || clear_cmdline) |