Mercurial > vim
view src/testdir/test_autochdir.vim @ 33982:63341afcd329 v9.0.2177
patch 9.0.2177: Wrong cursor position when dragging out of window
Commit: https://github.com/vim/vim/commit/ec14924368e23f2430815c009bd554f88de9c57f
Author: zeertzjq <zeertzjq@outlook.com>
Date: Tue Dec 19 20:28:31 2023 +0100
patch 9.0.2177: Wrong cursor position when dragging out of window
Problem: Wrong cursor position when dragging out of window.
Solution: Don't use ScreenCols[] when mouse is not in current window.
closes: #13717
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Dec 2023 20:30:09 +0100 |
parents | 0fe61fa4e5d1 |
children |
line wrap: on
line source
" Test 'autochdir' behavior source check.vim CheckOption autochdir func Test_set_filename() let cwd = getcwd() call test_autochdir() set acd let s:li = [] autocmd DirChanged auto call add(s:li, "autocd") autocmd DirChanged auto call add(s:li, expand("<afile>")) new w samples/Xtest call assert_equal("Xtest", expand('%')) call assert_equal("samples", substitute(getcwd(), '.*/\(\k*\)', '\1', '')) call assert_equal(["autocd", getcwd()], s:li) bwipe! au! DirChanged set noacd call chdir(cwd) call delete('samples/Xtest') endfunc func Test_set_filename_other_window() let cwd = getcwd() call test_autochdir() call mkdir('Xa', 'R') call mkdir('Xb', 'R') call mkdir('Xc', 'R') try args Xa/aaa.txt Xb/bbb.txt set acd let winid = win_getid() snext call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', '')) call win_execute(winid, 'file ' .. cwd .. '/Xc/ccc.txt') call assert_equal('Xb', substitute(getcwd(), '.*/\([^/]*\)$', '\1', '')) finally set noacd call chdir(cwd) bwipe! aaa.txt bwipe! bbb.txt bwipe! ccc.txt endtry endfunc func Test_acd_win_execute() let cwd = getcwd() set acd call test_autochdir() call mkdir('XacdDir', 'R') let winid = win_getid() new XacdDir/file call assert_match('testdir.XacdDir$', getcwd()) cd .. call assert_match('testdir$', getcwd()) call win_execute(winid, 'echo') call assert_match('testdir$', getcwd()) bwipe! set noacd call chdir(cwd) endfunc func Test_verbose_pwd() let cwd = getcwd() call test_autochdir() edit global.txt call assert_match('\[global\].*testdir$', execute('verbose pwd')) call mkdir('Xautodir', 'R') split Xautodir/local.txt lcd Xautodir call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) set acd wincmd w call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) execute 'tcd' cwd call assert_match('\[tabpage\].*testdir$', execute('verbose pwd')) execute 'cd' cwd call assert_match('\[global\].*testdir$', execute('verbose pwd')) execute 'lcd' cwd call assert_match('\[window\].*testdir$', execute('verbose pwd')) edit call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) enew wincmd w call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) wincmd w call assert_match('\[window\].*testdir$', execute('verbose pwd')) wincmd w call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) set noacd call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) wincmd w call assert_match('\[window\].*testdir$', execute('verbose pwd')) execute 'cd' cwd call assert_match('\[global\].*testdir$', execute('verbose pwd')) wincmd w call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) bwipe! call chdir(cwd) endfunc func Test_multibyte() " using an invalid character should not cause a crash set wic call assert_fails('tc *', has('win32') ? 'E480:' : 'E344:') set nowic endfunc " vim: shiftwidth=2 sts=2 expandtab