1
0
forked from aniani/vim

patch 8.2.1727: a popup created with "cursorline" will ignore "firstline"

Problem:    A popup created with "cursorline" will ignore "firstline".
Solution:   When both "cursorline" and "firstline" are present put the cursor
            on "firstline". (closes #7000)  Add the "winid" argument to
            getcurpos().
This commit is contained in:
Bram Moolenaar
2020-09-22 21:55:41 +02:00
parent 4f73b8e9cc
commit 99ca9c4868
7 changed files with 89 additions and 14 deletions

View File

@@ -593,8 +593,9 @@ popup_show_curline(win_T *wp)
++wp->w_topline;
}
// Don't use "firstline" now.
wp->w_firstline = 0;
// Don't let "firstline" cause a scroll.
if (wp->w_firstline > 0)
wp->w_firstline = wp->w_topline;
}
/*
@@ -948,6 +949,18 @@ apply_options(win_T *wp, dict_T *dict)
if (nr > 0)
wp->w_popup_flags |= POPF_HIDDEN;
// when "firstline" and "cursorline" are both set move the cursor to the
// "firstline".
if (wp->w_firstline > 0 && (wp->w_popup_flags & POPF_CURSORLINE))
{
if (wp->w_firstline > wp->w_buffer->b_ml.ml_line_count)
wp->w_cursor.lnum = wp->w_buffer->b_ml.ml_line_count;
else
wp->w_cursor.lnum = wp->w_firstline;
wp->w_topline = wp->w_cursor.lnum;
curwin->w_valid &= ~VALID_BOTLINE;
}
popup_mask_refresh = TRUE;
popup_highlight_curline(wp);
}