mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:7.4.226
Problem: Cursurline highlighting not redrawn when scrolling. (John Marriott) Solution: Check for required redraw in two places. https://code.google.com/p/vim/source/detail?r=b650f2db8f9604124c0ddfb14af0c04bd4ae0580
This commit is contained in:
parent
ca4005d759
commit
c142abf7e8
28
src/move.c
28
src/move.c
@ -30,6 +30,7 @@
|
|||||||
#include "screen.h"
|
#include "screen.h"
|
||||||
|
|
||||||
static void comp_botline(win_T *wp);
|
static void comp_botline(win_T *wp);
|
||||||
|
static void redraw_for_cursorline(win_T *wp);
|
||||||
static int scrolljump_value(void);
|
static int scrolljump_value(void);
|
||||||
static int check_top_offset(void);
|
static int check_top_offset(void);
|
||||||
static void curs_rows(win_T *wp, int do_botline);
|
static void curs_rows(win_T *wp, int do_botline);
|
||||||
@ -89,6 +90,7 @@ static void comp_botline(win_T *wp)
|
|||||||
wp->w_cline_row = done;
|
wp->w_cline_row = done;
|
||||||
wp->w_cline_height = n;
|
wp->w_cline_height = n;
|
||||||
wp->w_cline_folded = folded;
|
wp->w_cline_folded = folded;
|
||||||
|
redraw_for_cursorline(wp);
|
||||||
wp->w_valid |= (VALID_CROW|VALID_CHEIGHT);
|
wp->w_valid |= (VALID_CROW|VALID_CHEIGHT);
|
||||||
}
|
}
|
||||||
if (done + n > wp->w_height)
|
if (done + n > wp->w_height)
|
||||||
@ -104,6 +106,19 @@ static void comp_botline(win_T *wp)
|
|||||||
set_empty_rows(wp, done);
|
set_empty_rows(wp, done);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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)
|
||||||
|
&& (wp->w_valid & VALID_CROW) == 0
|
||||||
|
&& !pum_visible()) {
|
||||||
|
redraw_win_later(wp, SOME_VALID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update curwin->w_topline and redraw if necessary.
|
* Update curwin->w_topline and redraw if necessary.
|
||||||
* Used to update the screen before printing a message.
|
* Used to update the screen before printing a message.
|
||||||
@ -589,14 +604,7 @@ curs_rows (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Redraw when w_cline_row changes and 'relativenumber' or 'cursorline' is
|
redraw_for_cursorline(curwin);
|
||||||
* set. */
|
|
||||||
if ((curwin->w_p_rnu || curwin->w_p_cul)
|
|
||||||
&& (curwin->w_valid & VALID_CROW) == 0
|
|
||||||
&& !pum_visible()) {
|
|
||||||
redraw_later(SOME_VALID);
|
|
||||||
}
|
|
||||||
|
|
||||||
wp->w_valid |= VALID_CROW|VALID_CHEIGHT;
|
wp->w_valid |= VALID_CROW|VALID_CHEIGHT;
|
||||||
|
|
||||||
/* validate botline too, if update_screen doesn't do it */
|
/* validate botline too, if update_screen doesn't do it */
|
||||||
@ -1911,8 +1919,8 @@ int onepage(int dir, long count)
|
|||||||
}
|
}
|
||||||
comp_botline(curwin);
|
comp_botline(curwin);
|
||||||
curwin->w_cursor.lnum = curwin->w_botline - 1;
|
curwin->w_cursor.lnum = curwin->w_botline - 1;
|
||||||
curwin->w_valid &= ~(VALID_WCOL|VALID_CHEIGHT|
|
curwin->w_valid &=
|
||||||
VALID_WROW|VALID_CROW);
|
~(VALID_WCOL | VALID_CHEIGHT | VALID_WROW | VALID_CROW);
|
||||||
} else {
|
} else {
|
||||||
curwin->w_topline = loff.lnum;
|
curwin->w_topline = loff.lnum;
|
||||||
curwin->w_topfill = loff.fill;
|
curwin->w_topfill = loff.fill;
|
||||||
|
@ -234,7 +234,7 @@ static int included_patches[] = {
|
|||||||
229,
|
229,
|
||||||
//228,
|
//228,
|
||||||
//227,
|
//227,
|
||||||
//226,
|
226,
|
||||||
//225,
|
//225,
|
||||||
//224,
|
//224,
|
||||||
//223,
|
//223,
|
||||||
|
Loading…
Reference in New Issue
Block a user