summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-05-30 22:32:34 +0200
committerBram Moolenaar <Bram@vim.org>2019-05-30 22:32:34 +0200
commitc6896e20f8e7e8d9fe0fd1ad333aae1130d714e1 (patch)
tree4155d494ff12b6a2caf736f8f26e4edb826cb0c1
parent402502d0e4019ca97330eff40b9fb13736304896 (diff)
downloadvim-git-8.1.1431.tar.gz
patch 8.1.1431: popup window listed as "Scratch"v8.1.1431
Problem: Popup window listed as "Scratch". Solution: List them as "Popup".
-rw-r--r--runtime/doc/popup.txt8
-rw-r--r--runtime/doc/windows.txt9
-rw-r--r--src/buffer.c4
-rw-r--r--src/popupwin.c2
-rw-r--r--src/testdir/test_popupwin.vim4
-rw-r--r--src/version.c2
6 files changed, 24 insertions, 5 deletions
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index ad30e5827..add61acbf 100644
--- 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 `setwinvar()`, e.g.: >
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()| is a dictionary with options:
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()| is a dictionary with options:
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
index 187d00e4d..dca9dbf7e 100644
--- 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
index ea61c5ad0..3bfb6396b 100644
--- 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
index ef4609add..f828d9187 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -550,6 +550,7 @@ f_popup_hide(typval_T *argvars, typval_T *rettv UNUSED)
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 *rettv UNUSED)
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
index c5fdb6e87..29d4c1531 100644
--- 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
index 2f05cea8e..9b20fb75a 100644
--- 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,