summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--macos/Sources/Features/Terminal/TerminalController.swift18
1 files changed, 13 insertions, 5 deletions
diff --git a/macos/Sources/Features/Terminal/TerminalController.swift b/macos/Sources/Features/Terminal/TerminalController.swift
index 8507cf620..8118103d6 100644
--- a/macos/Sources/Features/Terminal/TerminalController.swift
+++ b/macos/Sources/Features/Terminal/TerminalController.swift
@@ -709,13 +709,21 @@ class TerminalController: BaseTerminalController {
// If our index is the same we do nothing
guard finalIndex != selectedIndex else { return }
- // Get our parent
- let parent = tabbedWindows[finalIndex]
+ // Get our target window
+ let targetWindow = tabbedWindows[finalIndex]
+
+ // Begin a group of window operations to minimize visual updates
+ NSAnimationContext.beginGrouping()
+ NSAnimationContext.current.duration = 0
- // Move our current selected window to the proper index
+ // Remove and re-add the window in the correct position
tabGroup.removeWindow(selectedWindow)
- parent.addTabbedWindow(selectedWindow, ordered: action.amount < 0 ? .below : .above)
- selectedWindow.makeKeyAndOrderFront(nil)
+ targetWindow.addTabbedWindow(selectedWindow, ordered: action.amount < 0 ? .below : .above)
+
+ // Ensure our window remains selected
+ selectedWindow.makeKey()
+
+ NSAnimationContext.endGrouping()
}
@objc private func onGotoTab(notification: SwiftUI.Notification) {