# HG changeset patch # User Bram Moolenaar # Date 1559249104 -7200 # Node ID 0154363d3b98021258c526984677116b303d9607 # Parent b1c49e3da5f698695e87b3ae00582ffd970a134d patch 8.1.1431: popup window listed as "Scratch" commit https://github.com/vim/vim/commit/c6896e20f8e7e8d9fe0fd1ad333aae1130d714e1 Author: Bram Moolenaar Date: Thu May 30 22:32:34 2019 +0200 patch 8.1.1431: popup window listed as "Scratch" Problem: Popup window listed as "Scratch". Solution: List them as "Popup". diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt --- a/runtime/doc/popup.txt +++ b/runtime/doc/popup.txt @@ -85,11 +85,11 @@ Probably 2. is the best choice. IMPLEMENTATION: - Code is in popupwin.c -- Implement the "pos" option. - Implement filter. Check that popup_close() works in the filter. +- Implement padding +- Implement border - Handle screen resize in screenalloc(). -- show [Popup] instead of [Scratch] in ":ls!" - Make redrawing more efficient and avoid flicker. Store popup info in a mask, use the mask in screen_line() Fix redrawing problem with completion. @@ -287,6 +287,8 @@ Options can be set on the window with `s call setwinvar(winid, '&wrap', 0) And options can be set on the buffer with `setbufvar()`, e.g.: > call setbufvar(winbufnr(winid), '&filetype', 'java') +Note that this does not trigger autocommands. Use `win_execute()` if you do +need them. POPUP_CREATE() ARGUMENTS *popup_create-usage* @@ -320,7 +322,6 @@ The second argument of |popup_create()| Alternatively "center" can be used to position the popup in the center of the Vim window, in which case "line" and "col" are ignored. - {not implemented yet} flip when TRUE (the default) and the position is relative to the cursor, flip to below or above the cursor to avoid overlap with the |popupmenu-completion| or @@ -342,7 +343,6 @@ The second argument of |popup_create()| popup, on top of any border {not implemented yet} wrap TRUE to make the lines wrap (default TRUE) - {not implemented yet} highlight highlight group name to use for the text, stored in the 'wincolor' option padding list with numbers, defining the padding diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt --- a/runtime/doc/windows.txt +++ b/runtime/doc/windows.txt @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 8.1. Last change: 2019 May 18 +*windows.txt* For Vim version 8.1. Last change: 2019 May 30 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1030,6 +1030,13 @@ list of buffers. |unlisted-buffer| thus you can always go to a specific buffer with ":buffer N" or "N CTRL-^", where N is the buffer number. + For the file name these special values are used: + [Prompt] |prompt-buffer| + [Popup] buffer of a |popup-window| + [Scratch] 'buftype' is "nofile" + [No Name] no file name specified + For a |terminal-window| buffer the status is used. + Indicators (chars in the same column are mutually exclusive): u an unlisted buffer (only displayed when [!] is used) |unlisted-buffer| diff --git a/src/buffer.c b/src/buffer.c --- a/src/buffer.c +++ b/src/buffer.c @@ -5782,6 +5782,10 @@ buf_spname(buf_T *buf) if (bt_prompt(buf)) return (char_u *)_("[Prompt]"); #endif +#ifdef FEAT_TEXT_PROP + if (bt_popup(buf)) + return (char_u *)_("[Popup]"); +#endif return (char_u *)_("[Scratch]"); } diff --git a/src/popupwin.c b/src/popupwin.c --- a/src/popupwin.c +++ b/src/popupwin.c @@ -550,6 +550,7 @@ f_popup_hide(typval_T *argvars, typval_T if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) == 0) { wp->w_popup_flags |= POPF_HIDDEN; + --wp->w_buffer->b_nwindows; redraw_all_later(NOT_VALID); } } @@ -566,6 +567,7 @@ f_popup_show(typval_T *argvars, typval_T if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) != 0) { wp->w_popup_flags &= ~POPF_HIDDEN; + ++wp->w_buffer->b_nwindows; redraw_all_later(NOT_VALID); } } diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim --- a/src/testdir/test_popupwin.vim +++ b/src/testdir/test_popupwin.vim @@ -196,12 +196,16 @@ func Test_popup_hide() let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '') call assert_equal('world', line) call assert_equal(1, popup_getpos(winid).visible) + " buffer is still listed and active + call assert_match(winbufnr(winid) .. 'u a.*\[Popup\]', execute('ls u')) call popup_hide(winid) redraw let line = join(map(range(1, 5), 'screenstring(1, v:val)'), '') call assert_equal('hello', line) call assert_equal(0, popup_getpos(winid).visible) + " buffer is still listed but hidden + call assert_match(winbufnr(winid) .. 'u h.*\[Popup\]', execute('ls u')) call popup_show(winid) redraw diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -768,6 +768,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1431, +/**/ 1430, /**/ 1429,