changeset 11818:0f9780ee4207 v8.0.0789

patch 8.0.0789: splitting terminal window has resizing problems commit https://github.com/vim/vim/commit/96ad8c9ac181b51605ac1f399c7835a515e5a1fa Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jul 28 14:17:34 2017 +0200 patch 8.0.0789: splitting terminal window has resizing problems Problem: When splitting a terminal window where the terminal follows the size of the window doesn't work. Solution: Use the size of the smallest window. (Yasuhiro Matsumoto, closes #1885)
author Christian Brabandt <cb@256bit.org>
date Fri, 28 Jul 2017 14:30:04 +0200
parents e802ab098e62
children ad66002340c5
files src/terminal.c src/version.c
diffstat 2 files changed, 18 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -927,8 +927,22 @@ term_update_window(win_T *wp)
     if ((!term->tl_rows_fixed && term->tl_rows != wp->w_height)
 	    || (!term->tl_cols_fixed && term->tl_cols != wp->w_width))
     {
-	int rows = term->tl_rows_fixed ? term->tl_rows : wp->w_height;
-	int cols = term->tl_cols_fixed ? term->tl_cols : wp->w_width;
+	int	rows = term->tl_rows_fixed ? term->tl_rows : wp->w_height;
+	int	cols = term->tl_cols_fixed ? term->tl_cols : wp->w_width;
+	win_T	*twp;
+
+	FOR_ALL_WINDOWS(twp)
+	{
+	    /* When more than one window shows the same terminal, use the
+	     * smallest size. */
+	    if (twp->w_buffer == term->tl_buffer)
+	    {
+		if (!term->tl_rows_fixed && rows > twp->w_height)
+		    rows = twp->w_height;
+		if (!term->tl_cols_fixed && cols > twp->w_width)
+		    cols = twp->w_width;
+	    }
+	}
 
 	vterm_set_size(vterm, rows, cols);
 	ch_logn(term->tl_job->jv_channel, "Resizing terminal to %d lines",
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    789,
+/**/
     788,
 /**/
     787,