Skip to content

Commit fd9384e

Browse files
author
skywind3000
committed
polish listbox
1 parent 932034c commit fd9384e

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

autoload/quickui/listbox.vim

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
426432
endfunc
@@ -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)

autoload/quickui/utils.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ endfunc
384384
function! quickui#utils#get_cursor(winid)
385385
let g:quickui#utils#__cursor_index__ = -1
386386
let cmd = 'let g:quickui#utils#__cursor_index__ = line(".")'
387-
call quickui#core#win_execute(a:winid, cmd)
387+
noautocmd call quickui#core#win_execute(a:winid, cmd)
388388
return g:quickui#utils#__cursor_index__
389389
endfunc
390390

0 commit comments

Comments
 (0)