From 31a191b8f0eebee5ff5b8f6e924b699287a173e7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 12 Sep 2023 17:23:01 +0200 Subject: [PATCH] UI Overlap With `window.nativeTabs: false`, `window.commandCenter: true`, and Tab per Project (fix #192801) --- .../electron-sandbox/actions/windowActions.ts | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/vs/workbench/electron-sandbox/actions/windowActions.ts b/src/vs/workbench/electron-sandbox/actions/windowActions.ts index 7a348c60a3580..352f575bc2d70 100644 --- a/src/vs/workbench/electron-sandbox/actions/windowActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/windowActions.ts @@ -25,6 +25,7 @@ import { Action2, IAction2Options, MenuId } from 'vs/platform/actions/common/act import { Categories } from 'vs/platform/action/common/actionCommonCategories'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; +import { isMacintosh } from 'vs/base/common/platform'; export class CloseWindowAction extends Action2 { @@ -276,26 +277,59 @@ export class QuickSwitchWindowAction extends BaseSwitchWindow { } } +function canRunNativeTabsHandler(accessor: ServicesAccessor): boolean { + if (!isMacintosh) { + return false; + } + + const configurationService = accessor.get(IConfigurationService); + return configurationService.getValue('window.nativeTabs') === true; +} + export const NewWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).newWindowTab(); }; export const ShowPreviousWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).showPreviousWindowTab(); }; export const ShowNextWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).showNextWindowTab(); }; export const MoveWindowTabToNewWindowHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).moveWindowTabToNewWindow(); }; export const MergeWindowTabsHandlerHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).mergeAllWindowTabs(); }; export const ToggleWindowTabsBarHandler: ICommandHandler = function (accessor: ServicesAccessor) { + if (!canRunNativeTabsHandler(accessor)) { + return; + } + return accessor.get(INativeHostService).toggleWindowTabsBar(); };