To: vim_dev@googlegroups.com Subject: Patch 8.2.4803 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4803 Problem: WinScrolled not always triggered when scrolling with the mouse. Solution: Add calls to may_trigger_winscrolled(). (closes #10246) Files: src/mouse.c, src/testdir/test_autocmd.vim *** ../vim-8.2.4802/src/mouse.c 2022-04-05 13:16:57.540981208 +0100 --- src/mouse.c 2022-04-21 22:48:08.010228797 +0100 *************** *** 1127,1132 **** --- 1127,1133 ---- } #endif did_scroll = TRUE; + may_trigger_winscrolled(); } curwin->w_redr_status = TRUE; *************** *** 2087,2092 **** --- 2088,2094 ---- if (curwin != old_curwin && curwin->w_p_cul) redraw_for_cursorline(curwin); # endif + may_trigger_winscrolled(); curwin->w_redr_status = TRUE; *** ../vim-8.2.4802/src/testdir/test_autocmd.vim 2022-04-21 11:13:56.482271279 +0100 --- src/testdir/test_autocmd.vim 2022-04-21 22:48:08.010228797 +0100 *************** *** 364,369 **** --- 364,400 ---- call delete('Xtest_winscrolled') endfunc + func Test_WinScrolled_mouse() + CheckRunVimInTerminal + + let lines =<< trim END + set nowrap scrolloff=0 + set mouse=a term=xterm ttymouse=sgr mousetime=200 clipboard= + call setline(1, ['foo']->repeat(32)) + split + let g:scrolled = 0 + au WinScrolled * let g:scrolled += 1 + END + call writefile(lines, 'Xtest_winscrolled_mouse') + let buf = RunVimInTerminal('-S Xtest_winscrolled_mouse', {'rows': 10}) + + " With the upper split focused, send a scroll-down event to the unfocused one. + call test_setmouse(7, 1) + call term_sendkeys(buf, "\") + call TermWait(buf) + call term_sendkeys(buf, ":echo g:scrolled\") + call WaitForAssert({-> assert_match('^1', term_getline(buf, 10))}, 1000) + + " Again, but this time while we're in insert mode. + call term_sendkeys(buf, "i\\") + call TermWait(buf) + call term_sendkeys(buf, ":echo g:scrolled\") + call WaitForAssert({-> assert_match('^2', term_getline(buf, 10))}, 1000) + + call StopVimInTerminal(buf) + call delete('Xtest_winscrolled_mouse') + endfunc + func Test_WinScrolled_close_curwin() CheckRunVimInTerminal *************** *** 1572,1578 **** " Close the other window, should be correct. exe win_id2win(winid) . 'q' call assert_equal('Xfoo', g:afile) ! unlet g:afile bwipe Xfoo bwipe Xbar --- 1603,1609 ---- " Close the other window, should be correct. exe win_id2win(winid) . 'q' call assert_equal('Xfoo', g:afile) ! unlet g:afile bwipe Xfoo bwipe Xbar *** ../vim-8.2.4802/src/version.c 2022-04-21 11:13:56.482271279 +0100 --- src/version.c 2022-04-21 22:49:40.790283074 +0100 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4803, /**/ -- hundred-and-one symptoms of being an internet addict: 33. You name your children Eudora, Mozilla and Dotcom. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///