Skip to content

Commit 57ced5a

Browse files
committed
fix: tab item context menu key bindings
1 parent dee662d commit 57ced5a

File tree

4 files changed

+23
-19
lines changed

4 files changed

+23
-19
lines changed

addons/launcher/src/renderer/LauncherList.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ function handleDrop(args: DraggableElementEventPayload<LauncherDraggableElementD
193193
194194
function openLauncherMenu(launcher: Launcher, tab: TerminalTab | undefined, event: MouseEvent) {
195195
const scripts = launcher.scripts ?? []
196-
const { updatingItems, deletingItems } = commas.workspace.createTerminalTabContextMenu()
196+
const { updatingItems, deletingItems } = commas.workspace.createTerminalTabContextMenu(tab)
197197
commas.ui.openContextMenu([
198198
...commas.ui.withContextMenuSeparator([
199199
{

src/renderer/components/TabList.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@ function handleGroupSeparating(args: DraggableElementEventPayload<DraggableEleme
166166
}
167167
}
168168
169-
function openTabItemMenu(event: MouseEvent) {
170-
const { updatingItems, deletingItems } = createTerminalTabContextMenu()
169+
function openTabItemMenu(event: MouseEvent, tab: TerminalTab) {
170+
const { updatingItems, deletingItems } = createTerminalTabContextMenu(tab)
171171
openContextMenu([
172172
...withContextMenuSeparator(updatingItems, []),
173173
...deletingItems,
@@ -212,7 +212,7 @@ function openTabItemMenu(event: MouseEvent) {
212212
:tab="tab"
213213
:character="tab.character"
214214
@click="activateTerminalTab(tab)"
215-
@contextmenu="openTabItemMenu"
215+
@contextmenu="openTabItemMenu($event, tab)"
216216
/>
217217
</div>
218218
</DropTarget>

src/renderer/compositions/terminal.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ declare module '@commas/api/modules/app' {
4040
declare module '@commas/electron-ipc' {
4141
export interface RendererEvents {
4242
'open-tab': (context?: Partial<TerminalContext>, options?: CreateTerminalTabOptions) => void,
43-
'duplicate-tab': () => void,
44-
'split-tab': () => void,
45-
'close-tab': () => void,
43+
'duplicate-tab': (data?: Pick<TerminalTab, 'pid'>) => void,
44+
'split-tab': (data?: Pick<TerminalTab, 'pid'>) => void,
45+
'close-tab': (data?: Pick<TerminalTab, 'pid'>) => void,
4646
'input-terminal': (data: Pick<TerminalTab, 'pid' | 'process'> & { data: string }) => void,
4747
'exit-terminal': (data: Pick<TerminalTab, 'pid'>) => void,
4848
'clear-terminal': () => void,
@@ -480,19 +480,20 @@ export function handleTerminalMessages() {
480480
ipcRenderer.on('open-tab', (event, context, options) => {
481481
createTerminalTab(context, options)
482482
})
483-
ipcRenderer.on('duplicate-tab', event => {
484-
if (currentTerminal) {
485-
createTerminalTab(currentTerminal)
486-
}
483+
ipcRenderer.on('duplicate-tab', (event, data) => {
484+
const tab = data ? tabs.find(item => item.pid === data.pid) : currentTerminal
485+
if (!tab) return
486+
createTerminalTab(tab)
487487
})
488-
ipcRenderer.on('split-tab', () => {
489-
if (currentTerminal) {
490-
splitTerminalTab(currentTerminal)
491-
}
488+
ipcRenderer.on('split-tab', (event, data) => {
489+
const tab = data ? tabs.find(item => item.pid === data.pid) : currentTerminal
490+
if (!tab) return
491+
splitTerminalTab(tab)
492492
})
493-
ipcRenderer.on('close-tab', () => {
494-
if (currentTerminal) {
495-
closeTerminalTab(currentTerminal)
493+
ipcRenderer.on('close-tab', (event, data) => {
494+
const tab = data ? tabs.find(item => item.pid === data.pid) : currentTerminal
495+
if (tab) {
496+
closeTerminalTab(tab)
496497
}
497498
})
498499
ipcRenderer.on('input-terminal', (event, data) => {

src/renderer/utils/terminal.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,24 +101,27 @@ export function getReadableSignal(code: number) {
101101
?.[0]
102102
}
103103
}
104-
export function createTerminalTabContextMenu() {
104+
export function createTerminalTabContextMenu(tab?: TerminalTab) {
105105
let updatingItems: MenuItem[] = [
106106
{
107107
label: 'Duplicate Tab#!menu.duplicatetab',
108108
accelerator: 'CmdOrCtrl+D',
109109
command: 'duplicate-tab',
110+
args: tab ? [{ pid: tab.pid }] : undefined,
110111
},
111112
{
112113
label: 'Split Tab#!menu.splittab',
113114
accelerator: 'CmdOrCtrl+Shift+D',
114115
command: 'split-tab',
116+
args: tab ? [{ pid: tab.pid }] : undefined,
115117
},
116118
]
117119
const deletingItems: MenuItem[] = [
118120
{
119121
label: 'Close Tab#!menu.closetab',
120122
accelerator: 'CmdOrCtrl+W',
121123
command: 'close-tab',
124+
args: tab ? [{ pid: tab.pid }] : undefined,
122125
},
123126
]
124127
return {

0 commit comments

Comments
 (0)