@@ -16,6 +16,13 @@ export interface MenuDeps {
1616 newChat : ( ) => void
1717 closeFocusedBrowserTab : ( win : BrowserWindow | null ) => boolean
1818 reopenClosedBrowserTab : ( win : BrowserWindow | null ) => boolean
19+ /**
20+ * Terminal counterparts. Menu accelerators are global, so Cmd-W and
21+ * Cmd-Shift-T reach here whatever the user is looking at; each panel gets
22+ * asked whether the keystroke was meant for it before the window acts.
23+ */
24+ closeFocusedTerminal : ( ) => boolean
25+ reopenClosedTerminal : ( ) => boolean
1926 toggleSidebar : ( ) => void
2027 signOut : ( ) => void
2128 checkForUpdates : ( ) => void
@@ -101,6 +108,7 @@ export function buildMenuTemplate(deps: MenuDeps): MenuItemConstructorOptions[]
101108 label : 'Reopen Closed Tab' ,
102109 accelerator : 'CmdOrCtrl+Shift+T' ,
103110 click : ( _item , focusedWindow ) => {
111+ if ( deps . reopenClosedTerminal ( ) ) return
104112 const win =
105113 focusedWindow instanceof BrowserWindow ? focusedWindow : deps . getMainWindow ( )
106114 deps . reopenClosedBrowserTab ( win )
@@ -110,6 +118,7 @@ export function buildMenuTemplate(deps: MenuDeps): MenuItemConstructorOptions[]
110118 label : 'Close Window' ,
111119 accelerator : 'CmdOrCtrl+W' ,
112120 click : ( _item , focusedWindow ) => {
121+ if ( deps . closeFocusedTerminal ( ) ) return
113122 const win =
114123 focusedWindow instanceof BrowserWindow ? focusedWindow : deps . getMainWindow ( )
115124 if ( deps . closeFocusedBrowserTab ( win ) ) return
0 commit comments