diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-05-20 13:45:59 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-20 13:45:59 +0100 |
commit | 6dab00aa5417f62f8c2c85c7c4ae871b4f1171f4 (patch) | |
tree | 42b5898c0eeb45d5282aaff24d65dc30b34a1421 | |
parent | b0855f5324b348921d412d97193e8c8bc3b5d1dd (diff) | |
download | vim-git-6dab00aa5417f62f8c2c85c7c4ae871b4f1171f4.tar.gz |
patch 8.2.4984: dragging statusline fails for window with winbarv8.2.4984
Problem: Dragging statusline fails for window with winbar.
Solution: Fix off-by-one error. (closes #10448)
-rw-r--r-- | src/mouse.c | 2 | ||||
-rw-r--r-- | src/testdir/test_winbar.vim | 28 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 31 insertions, 1 deletions
diff --git a/src/mouse.c b/src/mouse.c index af9186d72..58c4ab4ec 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -1823,7 +1823,7 @@ retnomove: if (dragwin != NULL) { // Drag the status line - count = row - dragwin->w_winrow - dragwin->w_height + 1 + count = row - W_WINROW(dragwin) - dragwin->w_height + 1 - on_status_line; win_drag_status_line(dragwin, count); did_drag |= count; diff --git a/src/testdir/test_winbar.vim b/src/testdir/test_winbar.vim index 92da3128f..7972bc3b6 100644 --- a/src/testdir/test_winbar.vim +++ b/src/testdir/test_winbar.vim @@ -161,4 +161,32 @@ func Test_winbar_not_visible_custom_statusline() call delete('XtestWinbarNotVisble') endfunction +func Test_drag_statusline_with_winbar() + call SetupWinbar() + let save_mouse = &mouse + set mouse=a + set laststatus=2 + + call test_setmouse(&lines - 1, 1) + call feedkeys("\<LeftMouse>", 'xt') + call test_setmouse(&lines - 2, 1) + call feedkeys("\<LeftDrag>", 'xt') + call assert_equal(2, &cmdheight) + + call test_setmouse(&lines - 2, 1) + call feedkeys("\<LeftMouse>", 'xt') + call test_setmouse(&lines - 3, 1) + call feedkeys("\<LeftDrag>", 'xt') + call assert_equal(3, &cmdheight) + + call test_setmouse(&lines - 3, 1) + call feedkeys("\<LeftMouse>", 'xt') + call test_setmouse(&lines - 1, 1) + call feedkeys("\<LeftDrag>", 'xt') + call assert_equal(1, &cmdheight) + + let &mouse = save_mouse + set laststatus& +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 1ac456029..40b81d1f3 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4984, +/**/ 4983, /**/ 4982, |