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))
/* 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. */