-*popup.txt* For Vim version 8.1. Last change: 2019 Oct 20
+*popup.txt* For Vim version 8.1. Last change: 2019 Nov 03
VIM REFERENCE MANUAL by Bram Moolenaar
core_height height of the text box in screen cells
firstline line of the buffer at top (1 unless scrolled)
(not the value of the "firstline" property)
+ lastline line of the buffer at the bottom
scrollbar non-zero if a scrollbar is displayed
visible one if the popup is displayed, zero if hidden
Note that these are the actual screen positions. They differ
wp->w_height = wp->w_maxheight;
if (wp->w_height > Rows - wp->w_winrow)
wp->w_height = Rows - wp->w_winrow;
+ if (wp->w_height != org_height)
+ win_comp_scroll(wp);
if (center_vert)
{
dict_add_number(dict, "scrollbar", wp->w_has_scrollbar);
dict_add_number(dict, "firstline", wp->w_topline);
+ dict_add_number(dict, "lastline", wp->w_botline - 1);
dict_add_number(dict, "visible",
win_valid(wp) && (wp->w_popup_flags & POPF_HIDDEN) == 0);
\ height: 3,
\ core_height: 1,
\ firstline: 1,
+ \ lastline: 1,
\ scrollbar: 0,
\ visible: 1}
let winid = popup_create('hello border', #{line: 2, col: 3, border: []})",
\ scrollbar: 0,
\ core_height: 1,
\ firstline: 1,
+ \ lastline: 1,
\ visible: 1}, popup_getpos(winid))
call popup_clear()
call assert_equal(0, popup_getoptions(winid).firstline)
call assert_equal(10, popup_getpos(winid).firstline)
+ " CTRL-D scrolls down half a page
+ let winid = popup_create(['xxx']->repeat(50), #{
+ \ maxheight: 8,
+ \ })
+ redraw
+ call assert_equal(1, popup_getpos(winid).firstline)
+ call win_execute(winid, "normal! \<C-D>")
+ call assert_equal(5, popup_getpos(winid).firstline)
+ call win_execute(winid, "normal! \<C-D>")
+ call assert_equal(9, popup_getpos(winid).firstline)
+ call win_execute(winid, "normal! \<C-U>")
+ call assert_equal(5, popup_getpos(winid).firstline)
+
+ call win_execute(winid, "normal! \<C-F>")
+ call assert_equal(11, popup_getpos(winid).firstline)
+ call win_execute(winid, "normal! \<C-B>")
+ call assert_equal(5, popup_getpos(winid).firstline)
+
call popup_close(winid)
endfunc
\ minheight: 4,
\ maxheight: 4,
\ firstline: 1,
+ \ lastline: 4,
\ wrap: v:true,
\ scrollbar: v:true,
\ mapping: v:false,