]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 8.1.1442: popup windows not considered when the Vim window is resized v8.1.1442
authorBram Moolenaar <Bram@vim.org>
Sat, 1 Jun 2019 16:11:22 +0000 (18:11 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 1 Jun 2019 16:11:22 +0000 (18:11 +0200)
Problem:    Popup windows not considered when the Vim window is resized.
            (Ben Jackson)
Solution:   Reallocate the w_lines structure. (closes #4467)

src/screen.c
src/version.c

index a8b10dedb986779c6a4cb07a396700e0d3ac5b57..304c8c6445a5848b63decd14f3625bee3d861511 100644 (file)
@@ -8892,6 +8892,15 @@ retry:
        win_free_lsize(wp);
     if (aucmd_win != NULL)
        win_free_lsize(aucmd_win);
+#ifdef FEAT_TEXT_PROP
+    // global popup windows
+    for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
+       win_free_lsize(wp);
+    // tab-local popup windows
+    FOR_ALL_TABPAGES(tp)
+       for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
+           win_free_lsize(wp);
+#endif
 
     new_ScreenLines = LALLOC_MULT(schar_T, (Rows + 1) * Columns);
     vim_memset(new_ScreenLinesC, 0, sizeof(u8char_T *) * MAX_MCO);
@@ -8920,6 +8929,24 @@ retry:
     if (aucmd_win != NULL && aucmd_win->w_lines == NULL
                                        && win_alloc_lines(aucmd_win) == FAIL)
        outofmem = TRUE;
+#ifdef FEAT_TEXT_PROP
+    // global popup windows
+    for (wp = first_popupwin; wp != NULL; wp = wp->w_next)
+       if (win_alloc_lines(wp) == FAIL)
+       {
+           outofmem = TRUE;
+           goto give_up;
+       }
+    // tab-local popup windows
+    FOR_ALL_TABPAGES(tp)
+       for (wp = tp->tp_first_popupwin; wp != NULL; wp = wp->w_next)
+           if (win_alloc_lines(wp) == FAIL)
+           {
+               outofmem = TRUE;
+               goto give_up;
+           }
+#endif
+
 give_up:
 
     for (i = 0; i < p_mco; ++i)
index 4b472ee89db2e8d4464b68bfda10c27a10c5e37c..f2602d69690f66607111bbc7ba76da9e2fd6321f 100644 (file)
@@ -767,6 +767,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1442,
 /**/
     1441,
 /**/