diff src/popupwin.c @ 19647:c8cb1a41f64c v8.2.0380

patch 8.2.0380: tiny popup when creating a terminal popup without minwidth Commit: https://github.com/vim/vim/commit/193982650960f8411df51f3b3b0d44a75e1ac034 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 14 15:28:08 2020 +0100 patch 8.2.0380: tiny popup when creating a terminal popup without minwidth Problem: Tiny popup when creating a terminal popup without minwidth. Solution: Use a default mininum size of 5 lines of 20 characters.
author Bram Moolenaar <Bram@vim.org>
date Sat, 14 Mar 2020 15:30:03 +0100
parents 8de319d1b82c
children 435726a03481
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1127,7 +1127,7 @@ popup_adjust_position(win_T *wp)
     int		org_height = wp->w_height;
     int		org_leftcol = wp->w_leftcol;
     int		org_leftoff = wp->w_popup_leftoff;
-    int		minwidth;
+    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,6 +1249,18 @@ popup_adjust_position(win_T *wp)
 	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,8 +1431,8 @@ popup_adjust_position(win_T *wp)
 
     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 (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;