0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.4984: dragging statusline fails for window with winbar

Problem:    Dragging statusline fails for window with winbar.
Solution:   Fix off-by-one error. (closes #10448)
This commit is contained in:
zeertzjq
2022-05-20 13:45:59 +01:00
committed by Bram Moolenaar
parent b0855f5324
commit 6dab00aa54
3 changed files with 31 additions and 1 deletions

View File

@@ -1823,7 +1823,7 @@ retnomove:
if (dragwin != NULL) if (dragwin != NULL)
{ {
// Drag the status line // 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; - on_status_line;
win_drag_status_line(dragwin, count); win_drag_status_line(dragwin, count);
did_drag |= count; did_drag |= count;

View File

@@ -161,4 +161,32 @@ func Test_winbar_not_visible_custom_statusline()
call delete('XtestWinbarNotVisble') call delete('XtestWinbarNotVisble')
endfunction 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 " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
4984,
/**/ /**/
4983, 4983,
/**/ /**/