diff --git a/app/src/electron.js b/app/src/electron.js index f1eb3a584..ae302b1bc 100644 --- a/app/src/electron.js +++ b/app/src/electron.js @@ -51,7 +51,8 @@ function buildMenu() { commandItem('group.save'), commandItem('group.saveAs'), { type: 'separator' }, - { role: 'close' }, + commandItem('tabs.closeTab'), + commandItem('file.exit'), ], }, { diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index 69b18b8c1..3c3dcca89 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -266,6 +266,15 @@ if (hasPermission('settings/change')) { }); } +if (electron) { + registerCommand({ + id: 'file.exit', + category: 'File', + name: 'Exit', + onClick: () => electron.remote.getCurrentWindow().close(), + }); +} + export function registerFileCommands({ idPrefix, category, diff --git a/packages/web/src/widgets/TabsPanel.svelte b/packages/web/src/widgets/TabsPanel.svelte index dc4f6c759..227d632a5 100644 --- a/packages/web/src/widgets/TabsPanel.svelte +++ b/packages/web/src/widgets/TabsPanel.svelte @@ -33,6 +33,9 @@ })) ); }; + const closeCurrentTab = () => { + closeTab(getActiveTabId()); + }; const closeWithSameDb = closeTabFunc( (x, active) => _.get(x, 'props.conid') == _.get(active, 'props.conid') && @@ -96,6 +99,15 @@ onClick: closeAll, }); + registerCommand({ + id: 'tabs.closeTab', + category: 'Tabs', + name: 'Close tab', + keyText: 'Ctrl+W', + testEnabled: () => getOpenedTabs().filter(x => !x.closedTime).length >= 1, + onClick: closeCurrentTab, + }); + registerCommand({ id: 'tabs.addToFavorites', category: 'Tabs', @@ -120,7 +132,7 @@ import FavoriteModal from '../modals/FavoriteModal.svelte'; import { showModal } from '../modals/modalTools'; - import { currentDatabase, getActiveTab, getOpenedTabs, openedTabs, activeTabId } from '../stores'; + import { currentDatabase, getActiveTab, getOpenedTabs, openedTabs, activeTabId, getActiveTabId } from '../stores'; import tabs from '../tabs'; import { setSelectedTab } from '../utility/common'; import contextMenu from '../utility/contextMenu';