Wrap: fix scrolling to keep cursor visible logic
This commit is contained in:
parent
f8dee65d6e
commit
b1115f7469
|
@ -798,10 +798,11 @@ struct WrapHighlighter : Highlighter
|
||||||
win_line += wrap_count + 1;
|
win_line += wrap_count + 1;
|
||||||
|
|
||||||
// scroll window to keep cursor visible, and update range as lines gets removed
|
// scroll window to keep cursor visible, and update range as lines gets removed
|
||||||
while (setup.window_pos.line < cursor.line and
|
while (buf_line >= cursor.line and setup.window_pos.line < cursor.line and
|
||||||
cursor.line + setup.scroll_offset.line >= setup.window_pos.line + setup.window_range.line)
|
cursor.line + setup.scroll_offset.line >= setup.window_pos.line + setup.window_range.line)
|
||||||
{
|
{
|
||||||
auto removed_lines = 1 + line_wrap_count(setup.window_pos.line++, indent);
|
auto removed_lines = std::min(context.window().dimensions().line,
|
||||||
|
1 + line_wrap_count(setup.window_pos.line++, indent));
|
||||||
setup.cursor_pos.line -= removed_lines;
|
setup.cursor_pos.line -= removed_lines;
|
||||||
win_line -= removed_lines;
|
win_line -= removed_lines;
|
||||||
// removed one line from the range, added removed_lines potential ones
|
// removed one line from the range, added removed_lines potential ones
|
||||||
|
|
Loading…
Reference in New Issue
Block a user