diff options
author | KunMing Xie <qqzz014@gmail.com> | 2018-02-12 07:00:24 +0800 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-02-12 00:00:24 +0100 |
commit | 6bcee20806960fca2876cb76544cbca50831692e (patch) | |
tree | 83c233370112394c4eb7c851db16fb973addd11f | |
parent | f389196a344591da2f6cc2a63f4953e34316f954 (diff) | |
download | rneovim-6bcee20806960fca2876cb76544cbca50831692e.tar.gz rneovim-6bcee20806960fca2876cb76544cbca50831692e.tar.bz2 rneovim-6bcee20806960fca2876cb76544cbca50831692e.zip |
vim-patch:8.0.0490: vertical split makes 'winfixwidth' window smaller (#7990)
Problem: Splitting a 'winfixwidth' window vertically makes it one column
smaller. (Dominique Pelle)
Solution: Add one to the width for the separator.
https://github.com/vim/vim/commit/38e3483637c16e018f88c07b1dcff97cdb821a29
-rw-r--r-- | src/nvim/testdir/test_window_cmd.vim | 12 | ||||
-rw-r--r-- | src/nvim/window.c | 11 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/nvim/testdir/test_window_cmd.vim b/src/nvim/testdir/test_window_cmd.vim index 9d61921988..139d29a48b 100644 --- a/src/nvim/testdir/test_window_cmd.vim +++ b/src/nvim/testdir/test_window_cmd.vim @@ -306,20 +306,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/nvim/window.c b/src/nvim/window.c index 4dfc72f212..8d7e20bb73 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -641,11 +641,12 @@ int win_split_ins(int size, int flags, win_T *new_wp, int dir) if (oldwin->w_width - new_size - 1 < p_wmw) do_equal = TRUE; - /* 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. */ - if (oldwin->w_p_wfw) - win_setwidth_win(oldwin->w_width + new_size, oldwin); + // 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. Add one for the separator. + if (oldwin->w_p_wfw) { + 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. */ |