diff src/arglist.c @ 32282:e47739c49487 v9.0.1472

patch 9.0.1472: ":drop fname" may change the last used tab page Commit: https://github.com/vim/vim/commit/8281a16efc76197f7b0b2a385dffb44fce66d33e Author: Bram Moolenaar <Bram@vim.org> Date: Thu Apr 20 18:07:57 2023 +0100 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)
author Bram Moolenaar <Bram@vim.org>
date Thu, 20 Apr 2023 19:15:04 +0200
parents f1d5ad2b978e
children f4d88db48a63
line wrap: on
line diff
--- a/src/arglist.c
+++ b/src/arglist.c
@@ -1240,6 +1240,8 @@ do_arg_all(
     need_mouse_correct = TRUE;
 #endif
 
+    tabpage_T *new_lu_tp = curtab;
+
     // Try closing all windows that are not in the argument list.
     // Also close windows that are not full width;
     // 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.
     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.
     // ARGCOUNT may change while doing this, because of autocommands.
     if (count > aall.opened_len || count <= 0)