Patch 8.2.0380
Problem:    Tiny popup when creating a terminal popup without minwidth.
Solution:   Use a default mininum size of 5 lines of 20 characters.
Files:      src/popupwin.c, src/testdir/test_terminal.vim,
            src/testdir/dumps/Test_terminal_popup_m1.dump


*** ../vim-8.2.0379/src/popupwin.c      2020-03-13 14:34:34.229357234 +0100
--- src/popupwin.c      2020-03-14 08:54:14.472105845 +0100
***************
*** 1127,1133 ****
      int               org_height = wp->w_height;
      int               org_leftcol = wp->w_leftcol;
      int               org_leftoff = wp->w_popup_leftoff;
!     int               minwidth;
      int               wantline = wp->w_wantline;  // adjusted for textprop
      int               wantcol = wp->w_wantcol;    // adjusted for textprop
      int               use_wantcol = wantcol != 0;
--- 1127,1133 ----
      int               org_height = wp->w_height;
      int               org_leftcol = wp->w_leftcol;
      int               org_leftoff = wp->w_popup_leftoff;
!     int               minwidth, minheight;
      int               wantline = wp->w_wantline;  // adjusted for textprop
      int               wantcol = wp->w_wantcol;    // adjusted for textprop
      int               use_wantcol = wantcol != 0;
***************
*** 1249,1254 ****
--- 1249,1266 ----
        maxwidth = wp->w_maxwidth;
      }
      minwidth = wp->w_minwidth;
+     minheight = wp->w_minheight;
+ #ifdef FEAT_TERMINAL
+     // A terminal popup initially does not have content, use a default minimal
+     // width of 20 characters and height of 5 lines.
+     if (wp->w_buffer->b_term != NULL)
+     {
+       if (minwidth == 0)
+           minwidth = 20;
+       if (minheight == 0)
+           minheight = 5;
+     }
+ #endif
  
      // start at the desired first line
      if (wp->w_firstline > 0)
***************
*** 1419,1426 ****
  
      wp->w_height = wp->w_buffer->b_ml.ml_line_count - wp->w_topline
                                                                 + 1 + wrapped;
!     if (wp->w_minheight > 0 && wp->w_height < wp->w_minheight)
!       wp->w_height = wp->w_minheight;
      if (wp->w_maxheight > 0 && wp->w_height > wp->w_maxheight)
        wp->w_height = wp->w_maxheight;
      w_height_before_limit = wp->w_height;
--- 1431,1438 ----
  
      wp->w_height = wp->w_buffer->b_ml.ml_line_count - wp->w_topline
                                                                 + 1 + wrapped;
!     if (minheight > 0 && wp->w_height < minheight)
!       wp->w_height = minheight;
      if (wp->w_maxheight > 0 && wp->w_height > wp->w_maxheight)
        wp->w_height = wp->w_maxheight;
      w_height_before_limit = wp->w_height;
*** ../vim-8.2.0379/src/testdir/test_terminal.vim       2020-03-13 
14:55:15.795899666 +0100
--- src/testdir/test_terminal.vim       2020-03-14 15:21:24.099612817 +0100
***************
*** 2400,2405 ****
--- 2400,2442 ----
    call term_wait(buf, 100)  " wait for terminal to vanish
  
    call StopVimInTerminal(buf)
+   call delete('Xtext')
+   call delete('XtermPopup')
+ endfunc
+ 
+ " Check a terminal in popup window uses the default mininum size.
+ func Test_terminal_in_popup_min_size()
+   CheckRunVimInTerminal
+ 
+   let text =<< trim END
+     another text
+     to show
+     in a popup window
+   END
+   call writefile(text, 'Xtext')
+   let lines = [
+       \ 'set t_u7=',
+       \ 'call setline(1, range(20))',
+       \ 'hi PopTerm ctermbg=grey',
+       \ 'func OpenTerm()',
+       \ "  let s:buf = term_start('cat Xtext', #{hidden: 1})",
+       \ '  let g:winid = popup_create(s:buf, #{ border: []})',
+       \ 'endfunc',
+       \ ]
+   call writefile(lines, 'XtermPopup')
+   let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
+   call term_wait(buf, 100)
+   call term_sendkeys(buf, "\<C-L>")
+   call term_sendkeys(buf, ":call OpenTerm()\<CR>")
+   call term_wait(buf, 100)
+   call term_sendkeys(buf, ":\<CR>")
+   call VerifyScreenDump(buf, 'Test_terminal_popup_m1', {})
+ 
+   call term_wait(buf, 100)
+   call term_sendkeys(buf, ":q\<CR>")
+   call term_wait(buf, 100)  " wait for terminal to vanish
+   call StopVimInTerminal(buf)
+   call delete('Xtext')
    call delete('XtermPopup')
  endfunc
  
*** ../vim-8.2.0379/src/testdir/dumps/Test_terminal_popup_m1.dump       
2020-03-14 15:27:25.578272858 +0100
--- src/testdir/dumps/Test_terminal_popup_m1.dump       2020-03-14 
15:20:13.867865916 +0100
***************
*** 0 ****
--- 1,15 ----
+ |0+0&#ffffff0| @73
+ |1| @73
+ |2| @73
+ |3| @73
+ |4| @24|╔+0#0000001#ffd7ff255|═@19|╗| +0#0000000#ffffff0@26
+ |5| @24|║+0#0000001#ffd7ff255|a|n|o|t|h|e|r| |t|e|x|t| @7|║| 
+0#0000000#ffffff0@26
+ |6| @24|║+0#0000001#ffd7ff255|t|o| |s|h|o|w| @12|║| +0#0000000#ffffff0@26
+ |7| @24|║+0#0000001#ffd7ff255|i|n| |a| |p|o|p|u|p| |w|i|n|d|o|w| @2|║| 
+0#0000000#ffffff0@26
+ |8| @24|║+0#0000001#ffd7ff255| +0#4040ff13&> @18|║+0#0000001&| 
+0#0000000#ffffff0@26
+ |9| @24|║+0#0000001#ffd7ff255| +0#4040ff13&@19|║+0#0000001&| 
+0#0000000#ffffff0@26
+ |1|0| @23|╚+0#0000001#ffd7ff255|═@19|╝| +0#0000000#ffffff0@26
+ |1@1| @72
+ |1|2| @72
+ |1|3| @72
+ |:| @55|1|,|1| @10|T|o|p| 
*** ../vim-8.2.0379/src/version.c       2020-03-14 07:46:36.661672970 +0100
--- src/version.c       2020-03-14 08:49:10.345533112 +0100
***************
*** 740,741 ****
--- 740,743 ----
  {   /* Add new patch number below this line */
+ /**/
+     380,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
255. You work for a newspaper and your editor asks you to write an
     article about Internet addiction...in the "first person."

 /// 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/202003141428.02EESdXW025266%40masaka.moolenaar.net.

Raspunde prin e-mail lui