aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/move.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-01-12 11:05:49 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2019-01-13 12:08:11 +0100
commit23c71d5182a5e717c3a1852d9d3c90e81b4735fd (patch)
treee6966f2a6cf3d2f3e230cfb95b2a84880a9975b6 /src/nvim/move.c
parent9c75929e7b376a6f57246a954d2e0c5f3a1bc655 (diff)
downloadrneovim-23c71d5182a5e717c3a1852d9d3c90e81b4735fd.tar.gz
rneovim-23c71d5182a5e717c3a1852d9d3c90e81b4735fd.tar.bz2
rneovim-23c71d5182a5e717c3a1852d9d3c90e81b4735fd.zip
display: unify cursorline and concealcursor redraw logic
There is various places where 'conceallevel' and 'concealcursor' necessitates additional redraws. This tries to separate the different cases and handle each accordingly: - Share code with 'cursorline' for the common case: vertical move of cursor within the same window (concealcursor not active) - Improve the logic for managing 'concealcursor' and switching modes: test for the case where the new mode behaves differently from the last one. - Clarify the special case for horizontal movement within a line when 'concealcursor' is active, now there is an if-statement only for this and not hidden in larger check mostly for the first point. - Keep the special case for moving between windows as is.
Diffstat (limited to 'src/nvim/move.c')
-rw-r--r--src/nvim/move.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/move.c b/src/nvim/move.c
index f2c8996050..07b355e603 100644
--- a/src/nvim/move.c
+++ b/src/nvim/move.c
@@ -105,14 +105,14 @@ void reset_cursorline(void)
// Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is set.
static void redraw_for_cursorline(win_T *wp)
{
- if ((wp->w_p_rnu || wp->w_p_cul)
+ if ((wp->w_p_rnu || win_cursorline_standout(wp))
&& (wp->w_valid & VALID_CROW) == 0
&& !pum_visible()) {
if (wp->w_p_rnu) {
// win_line() will redraw the number column only.
redraw_win_later(wp, VALID);
}
- if (wp->w_p_cul) {
+ if (win_cursorline_standout(wp)) {
if (wp->w_redr_type <= VALID && wp->w_last_cursorline != 0) {
// "w_last_cursorline" may be outdated, worst case we redraw
// too much. This is optimized for moving the cursor around in
@@ -2207,7 +2207,7 @@ void do_check_cursorbind(void)
int restart_edit_save = restart_edit;
restart_edit = true;
check_cursor();
- if (curwin->w_p_cul || curwin->w_p_cuc) {
+ if (win_cursorline_standout(curwin) || curwin->w_p_cuc) {
validate_cursor();
}
restart_edit = restart_edit_save;