summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-03-19 20:22:36 +0100
committerBram Moolenaar <Bram@vim.org>2017-03-19 20:22:36 +0100
commit38e3483637c16e018f88c07b1dcff97cdb821a29 (patch)
treea91689c6c1ceb3f519cfbd8fafdb488e30a71214
parent7dd4850698e37c3ed4a3c3b23f4cdbf1ae6542f8 (diff)
downloadvim-git-38e3483637c16e018f88c07b1dcff97cdb821a29.tar.gz
patch 8.0.0490: vertical split makes 'winfixwidth' window smallerv8.0.0490
Problem: Splitting a 'winfixwidth' window vertically makes it one column smaller. (Dominique Pelle) Solution: Add one to the width for the separator.
-rw-r--r--src/testdir/test_window_cmd.vim12
-rw-r--r--src/version.c2
-rw-r--r--src/window.c4
3 files changed, 7 insertions, 11 deletions
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 58d139016..f7d5317f2 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 dd6e366a7..e009e8e63 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 490,
+/**/
489,
/**/
488,
diff --git a/src/window.c b/src/window.c
index 867f0636a..eed0ea9e7 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. */