Patch 8.2.0214
Problem:    A popup window with a terminal can be made hidden.
Solution:   Disallow hiding a terminal popup.
Files:      src/testdir/test_terminal.vim, src/popupwin.c,
            src/testdir/dumps/Test_terminal_popup_4.dump


*** ../vim-8.2.0213/src/testdir/test_terminal.vim       2020-02-02 
13:47:02.688673781 +0100
--- src/testdir/test_terminal.vim       2020-02-05 21:05:37.267386023 +0100
***************
*** 2337,2348 ****
        \ 'hi PopTerm ctermbg=grey',
        \ 'func OpenTerm(setColor)',
        \ "  let buf = term_start('" .. cmd .. " Xtext', #{hidden: 1, 
term_finish: 'close'})",
!       \ '  let winid = popup_create(buf, #{minwidth: 45, minheight: 7, 
border: [], drag: 1, resize: 1})',
        \ '  if a:setColor',
!       \ '    call win_execute(winid, "set wincolor=PopTerm")',
        \ '  endif',
        \ 'endfunc',
        \ 'call OpenTerm(0)',
        \ ]
    call writefile(lines, 'XtermPopup')
    let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
--- 2337,2351 ----
        \ 'hi PopTerm ctermbg=grey',
        \ 'func OpenTerm(setColor)',
        \ "  let buf = term_start('" .. cmd .. " Xtext', #{hidden: 1, 
term_finish: 'close'})",
!       \ '  let s:winid = popup_create(buf, #{minwidth: 45, minheight: 7, 
border: [], drag: 1, resize: 1})',
        \ '  if a:setColor',
!       \ '    call win_execute(s:winid, "set wincolor=PopTerm")',
        \ '  endif',
        \ 'endfunc',
        \ 'call OpenTerm(0)',
+       \ 'func HidePopup()',
+       \ '  call popup_hide(s:winid)',
+       \ 'endfunc',
        \ ]
    call writefile(lines, 'XtermPopup')
    let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
***************
*** 2356,2361 ****
--- 2359,2368 ----
    call term_sendkeys(buf, "/edit\<CR>")
    call VerifyScreenDump(buf, 'Test_terminal_popup_3', {})
   
+   call term_sendkeys(buf, "\<C-W>:call HidePopup()\<CR>")
+   call VerifyScreenDump(buf, 'Test_terminal_popup_4', {})
+   call term_sendkeys(buf, "\<CR>")
+ 
    call term_sendkeys(buf, ":q\<CR>")
    call term_wait(buf, 100)  " wait for terminal to vanish
  
*** ../vim-8.2.0213/src/popupwin.c      2020-02-03 22:58:45.263138668 +0100
--- src/popupwin.c      2020-02-05 21:01:39.512635141 +0100
***************
*** 2371,2376 ****
--- 2371,2380 ----
      void
  popup_hide(win_T *wp)
  {
+ #ifdef FEAT_TERMINAL
+     if (error_if_term_popup_window())
+       return;
+ #endif
      if ((wp->w_popup_flags & POPF_HIDDEN) == 0)
      {
        wp->w_popup_flags |= POPF_HIDDEN;
*** ../vim-8.2.0213/src/testdir/dumps/Test_terminal_popup_4.dump        
2020-02-05 21:06:53.782993684 +0100
--- src/testdir/dumps/Test_terminal_popup_4.dump        2020-02-05 
21:04:03.755871297 +0100
***************
*** 0 ****
--- 1,15 ----
+ |3+0&#ffffff0| @12|╔+0&#a8a8a8255|═@44|╗| +0&#ffffff0@13
+ |4| @12|║+0&#a8a8a8255|s|o|m|e| |t|e|x|t| @35|║| +0&#ffffff0@13
+ |5| @12|║+0&#a8a8a8255|t|o| |e+0&#ffff4012|d|i|t| +0&#a8a8a8255@37|║| 
+0&#ffffff0@13
+ |6| @12|║+0&#a8a8a8255|i|n| |a| |p|o|p|u|p| |w|i|n|d|o|w| @27|║| 
+0&#ffffff0@13
+ |7| @12|║+0&#a8a8a8255|~+0#4040ff13&| @43|║+0#0000000&| +0&#ffffff0@13
+ |8| @12|║+0&#a8a8a8255|~+0#4040ff13&| @43|║+0#0000000&| +0&#ffffff0@13
+ |9| @12|║+0&#a8a8a8255|~+0#4040ff13&| @43|║+0#0000000&| +0&#ffffff0@13
+ |1|0| @11|║+0&#a8a8a8255|/|e|d|i|t| @21|2|,|4| @10|A|l@1| |║| +0&#ffffff0@13
+ |1@1| @11|╚+0&#a8a8a8255|═@44|⇲| +0&#ffffff0@13
+ |1|2| @72
+ |1|3| @72
+ |E+0#ffffff16#e000002|r@1|o|r| |d|e|t|e|c|t|e|d| |w|h|i|l|e| 
|p|r|o|c|e|s@1|i|n|g| |f|u|n|c|t|i|o|n| |H|i|d|e|P|o|p|u|p|:| 
+0#0000000#ffffff0@23
+ |l+0#af5f00255&|i|n|e| @3|1|:| +0#0000000&@64
+ |E+0#ffffff16#e000002|8|6|3|:| |N|o|t| |a|l@1|o|w|e|d| |f|o|r| |a| 
|t|e|r|m|i|n|a|l| |i|n| |a| |p|o|p|u|p| |w|i|n|d|o|w| +0#0000000#ffffff0@24
+ |P+0#00e0003&|r|e|s@1| |E|N|T|E|R| |o|r| |t|y|p|e| |c|o|m@1|a|n|d| |t|o| 
|c|o|n|t|i|n|u|e> +0#0000000&@35
*** ../vim-8.2.0213/src/version.c       2020-02-05 20:44:19.081959534 +0100
--- src/version.c       2020-02-05 21:06:43.759044862 +0100
***************
*** 744,745 ****
--- 744,747 ----
  {   /* Add new patch number below this line */
+ /**/
+     214,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
31. You code your homework in HTML and give your instructor the URL.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202002052014.015KElJ3006139%40masaka.moolenaar.net.

Raspunde prin e-mail lui