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
index ad30e58..add61ac 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -85,11 +85,11 @@
 
 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 @@
 	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 @@
 			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 @@
 			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 187d00e..dca9dbf 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 @@
 		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 ea61c5a..3bfb639 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5782,6 +5782,10 @@
 	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 ef4609a..f828d91 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -550,6 +550,7 @@
     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 @@
     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 c5fdb6e..29d4c15 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -196,12 +196,16 @@
   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 2f05cea..9b20fb7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1431,
+/**/
     1430,
 /**/
     1429,