mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.0.1472: ":drop fname" may change the last used tab page
Problem: ":drop fname" may change the last used tab page. Solution: Restore the last used tab page when :drop has changed it. (closes #12087)
This commit is contained in:
parent
be9624eb47
commit
8281a16efc
@ -1240,6 +1240,8 @@ do_arg_all(
|
|||||||
need_mouse_correct = TRUE;
|
need_mouse_correct = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
tabpage_T *new_lu_tp = curtab;
|
||||||
|
|
||||||
// Try closing all windows that are not in the argument list.
|
// Try closing all windows that are not in the argument list.
|
||||||
// Also close windows that are not full width;
|
// Also close windows that are not full width;
|
||||||
// When 'hidden' or "forceit" set the buffer becomes hidden.
|
// When 'hidden' or "forceit" set the buffer becomes hidden.
|
||||||
@ -1247,6 +1249,10 @@ do_arg_all(
|
|||||||
// When the ":tab" modifier was used do this for all tab pages.
|
// When the ":tab" modifier was used do this for all tab pages.
|
||||||
arg_all_close_unused_windows(&aall);
|
arg_all_close_unused_windows(&aall);
|
||||||
|
|
||||||
|
// Now set the last used tabpage to where we started.
|
||||||
|
if (valid_tabpage(new_lu_tp))
|
||||||
|
lastused_tabpage = new_lu_tp;
|
||||||
|
|
||||||
// Open a window for files in the argument list that don't have one.
|
// Open a window for files in the argument list that don't have one.
|
||||||
// ARGCOUNT may change while doing this, because of autocommands.
|
// ARGCOUNT may change while doing this, because of autocommands.
|
||||||
if (count > aall.opened_len || count <= 0)
|
if (count > aall.opened_len || count <= 0)
|
||||||
|
@ -150,6 +150,22 @@ function Test_tabpage()
|
|||||||
tabonly!
|
tabonly!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_tabpage_drop()
|
||||||
|
edit f1
|
||||||
|
tab split f2
|
||||||
|
tab split f3
|
||||||
|
normal! gt
|
||||||
|
call assert_equal(1, tabpagenr())
|
||||||
|
|
||||||
|
tab drop f3
|
||||||
|
call assert_equal(3, tabpagenr())
|
||||||
|
call assert_equal(1, tabpagenr('#'))
|
||||||
|
bwipe!
|
||||||
|
bwipe!
|
||||||
|
bwipe!
|
||||||
|
call assert_equal(1, tabpagenr('$'))
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Test autocommands
|
" Test autocommands
|
||||||
function Test_tabpage_with_autocmd()
|
function Test_tabpage_with_autocmd()
|
||||||
command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
|
command -nargs=1 -bar C :call add(s:li, '=== ' . <q-args> . ' ===')|<args>
|
||||||
|
@ -695,6 +695,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 */
|
||||||
|
/**/
|
||||||
|
1472,
|
||||||
/**/
|
/**/
|
||||||
1471,
|
1471,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user