@@ -148,7 +148,7 @@ function! s:vim_create_listbox(textlist, opts)
148148 if has_key (a: opts , ' line' )
149149 let opts.line = a: opts .line
150150 else
151- let limit1 = (&lines - 2 ) * 80 / 100
151+ let limit1 = (&lines - 2 ) * 90 / 100
152152 let limit2 = (&lines - 2 )
153153 if h + 4 < limit1
154154 let opts.line = (limit1 - h ) / 2
@@ -245,6 +245,7 @@ function! quickui#listbox#callback(winid, code)
245245 endif
246246 let hwnd.state = 0
247247 let hwnd.code = code
248+ let g: quickui #listbox#cursor = quickui#utils#get_cursor (a: winid ) - 1
248249 call quickui#core#popup_clear (a: winid )
249250 silent ! call popup_hide (a: winid )
250251 let g: quickui #listbox#current = hwnd
@@ -421,6 +422,11 @@ function! quickui#listbox#inputlist(textlist, opts)
421422 endif
422423 endwhile
423424 " echo 'size: '. winheight(winid)
425+ if hr > 0
426+ call quickui#core#win_execute (winid, ' :' . (hr + 1 ))
427+ redraw
428+ endif
429+ let g: quickui #listbox#cursor = quickui#utils#get_cursor (winid) - 1
424430 call quickui#listbox#close (hwnd)
425431 return hr
426432endfunc
@@ -455,7 +461,7 @@ function! s:nvim_create_listbox(textlist, opts)
455461 if has_key (a: opts , ' line' )
456462 let opts.row = a: opts .line - 1
457463 else
458- let limit1 = (&lines - 2 ) * 80 / 100
464+ let limit1 = (&lines - 2 ) * 90 / 100
459465 let limit2 = (&lines - 2 )
460466 if h + 4 < limit1
461467 let opts.row = (limit1 - h ) / 2 - 1
@@ -575,6 +581,7 @@ function! s:nvim_create_listbox(textlist, opts)
575581 if retval > 0
576582 call quickui#core#win_execute (winid, ' :' . (retval + 1 ))
577583 endif
584+ let g: quickui #listbox#cursor = quickui#utils#get_cursor (winid) - 1
578585 call nvim_win_close (winid, 0 )
579586 if background >= 0
580587 call nvim_win_close (background , 0 )
0 commit comments