Merge pull request #1982 from injust/fix-relabel-tabs

Fix tab relabelling when opening >9 tabs
This commit is contained in:
Mitchell Hashimoto
2024-07-21 10:09:57 -07:00
committed by GitHub

View File

@ -118,7 +118,8 @@ class TerminalController: NSWindowController, NSWindowDelegate,
/// Update the accessory view of each tab according to the keyboard
/// shortcut that activates it (if any). This is called when the key window
/// changes and when a window is closed.
/// changes, when a window is closed, and when tabs are reordered
/// with the mouse.
func relabelTabs() {
// Reset this to false. It'll be set back to true later.
tabListenForFrame = false
@ -129,11 +130,19 @@ class TerminalController: NSWindowController, NSWindowDelegate,
// otherwise the accessory view doesn't matter.
tabListenForFrame = windows.count > 1
for (index, window) in windows.enumerated().prefix(9) {
let action = "goto_tab:\(index + 1)"
for (tab, window) in zip(1..., windows) {
// We need to clear any windows beyond this because they have had
// a keyEquivalent set previously.
guard tab <= 9 else {
window.keyEquivalent = ""
continue
}
let action = "goto_tab:\(tab)"
if let equiv = ghostty.config.keyEquivalent(for: action) {
window.keyEquivalent = "\(equiv)"
} else {
window.keyEquivalent = ""
}
}
}