From 38e3483637c16e018f88c07b1dcff97cdb821a29 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 19 Mar 2017 20:22:36 +0100 Subject: patch 8.0.0490: vertical split makes 'winfixwidth' window smaller Problem: Splitting a 'winfixwidth' window vertically makes it one column smaller. (Dominique Pelle) Solution: Add one to the width for the separator. --- src/testdir/test_window_cmd.vim | 12 +++--------- src/version.c | 2 ++ src/window.c | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim index 58d1390162..f7d5317f23 100644 --- a/src/testdir/test_window_cmd.vim +++ b/src/testdir/test_window_cmd.vim @@ -294,20 +294,14 @@ func Test_window_width() set winfixwidth vsplit Xc let [ww1, ww2, ww3] = [winwidth(1), winwidth(2), winwidth(3)] - " FIXME: commented out: I would expect the width of 2nd window to - " remain 2 but it's actually 1?! - "call assert_equal(2, winwidth(2)) + call assert_equal(2, winwidth(2)) call assert_inrange(ww3, ww3 + 1, ww1) 3wincmd > - " FIXME: commented out: I would expect the width of 2nd window to - " remain 2 but it's actually 1?! - "call assert_equal(2, winwidth(2)) + call assert_equal(2, winwidth(2)) call assert_equal(ww1 + 3, winwidth(1)) call assert_equal(ww3 - 3, winwidth(3)) wincmd = - " FIXME: commented out: I would expect the width of 2nd window to - " remain 2 but it's actually 1?! - "call assert_equal(2, winwidth(2)) + call assert_equal(2, winwidth(2)) call assert_equal(ww1, winwidth(1)) call assert_equal(ww3, winwidth(3)) diff --git a/src/version.c b/src/version.c index dd6e366a75..e009e8e637 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 490, /**/ 489, /**/ diff --git a/src/window.c b/src/window.c index 867f0636a9..eed0ea9e7d 100644 --- a/src/window.c +++ b/src/window.c @@ -870,9 +870,9 @@ win_split_ins( /* We don't like to take lines for the new window from a * 'winfixwidth' window. Take them from a window to the left or right - * instead, if possible. */ + * instead, if possible. Add one for the separator. */ if (oldwin->w_p_wfw) - win_setwidth_win(oldwin->w_width + new_size, oldwin); + win_setwidth_win(oldwin->w_width + new_size + 1, oldwin); /* Only make all windows the same width if one of them (except oldwin) * is wider than one of the split windows. */ -- cgit v1.2.3