From 1d978fa8338db4cce8bd8a0a800a67d46a31abf9 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 12 Sep 2023 17:15:15 +0200 Subject: [PATCH 1/3] debt - properly await `runWithFakedTimers` --- .../workingCopy/test/browser/resourceWorkingCopy.test.ts | 2 +- .../test/browser/storedFileWorkingCopy.test.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/services/workingCopy/test/browser/resourceWorkingCopy.test.ts b/src/vs/workbench/services/workingCopy/test/browser/resourceWorkingCopy.test.ts index d4d9097c02026..fee71d4e7d07b 100644 --- a/src/vs/workbench/services/workingCopy/test/browser/resourceWorkingCopy.test.ts +++ b/src/vs/workbench/services/workingCopy/test/browser/resourceWorkingCopy.test.ts @@ -55,7 +55,7 @@ suite('ResourceWorkingCopy', function () { }); test('orphaned tracking', async () => { - runWithFakedTimers({}, async () => { + return runWithFakedTimers({}, async () => { assert.strictEqual(workingCopy.isOrphaned(), false); let onDidChangeOrphanedPromise = Event.toPromise(workingCopy.onDidChangeOrphaned); diff --git a/src/vs/workbench/services/workingCopy/test/browser/storedFileWorkingCopy.test.ts b/src/vs/workbench/services/workingCopy/test/browser/storedFileWorkingCopy.test.ts index 17cfba00f843b..ba5268aff391d 100644 --- a/src/vs/workbench/services/workingCopy/test/browser/storedFileWorkingCopy.test.ts +++ b/src/vs/workbench/services/workingCopy/test/browser/storedFileWorkingCopy.test.ts @@ -234,7 +234,7 @@ suite('StoredFileWorkingCopy', function () { }); test('orphaned tracking', async () => { - runWithFakedTimers({}, async () => { + return runWithFakedTimers({}, async () => { assert.strictEqual(workingCopy.hasState(StoredFileWorkingCopyState.ORPHAN), false); let onDidChangeOrphanedPromise = Event.toPromise(workingCopy.onDidChangeOrphaned); @@ -411,7 +411,7 @@ suite('StoredFileWorkingCopy', function () { }); test('resolve (with backup, preserves metadata and orphaned state)', async () => { - runWithFakedTimers({}, async () => { + return runWithFakedTimers({}, async () => { await workingCopy.resolve({ contents: bufferToStream(VSBuffer.fromString('hello backup')) }); const orphanedPromise = Event.toPromise(workingCopy.onDidChangeOrphaned); @@ -440,7 +440,7 @@ suite('StoredFileWorkingCopy', function () { }); test('resolve (updates orphaned state accordingly)', async () => { - runWithFakedTimers({}, async () => { + return runWithFakedTimers({}, async () => { await workingCopy.resolve(); const orphanedPromise = Event.toPromise(workingCopy.onDidChangeOrphaned); @@ -694,7 +694,7 @@ suite('StoredFileWorkingCopy', function () { }); test('save (no errors) - save clears orphaned', async () => { - runWithFakedTimers({}, async () => { + return runWithFakedTimers({}, async () => { let savedCounter = 0; disposables.add(workingCopy.onDidSave(e => { savedCounter++; From 31a191b8f0eebee5ff5b8f6e924b699287a173e7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 12 Sep 2023 17:23:01 +0200 Subject: [PATCH 2/3] 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(); }; From dc3e793bd9ba6b505aecba568279451d95eb0bd1 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 12 Sep 2023 17:24:13 +0200 Subject: [PATCH 3/3] Revert "UI Overlap With `window.nativeTabs: false`, `window.commandCenter: true`, and Tab per Project (fix #192801)" This reverts commit 31a191b8f0eebee5ff5b8f6e924b699287a173e7. --- .../electron-sandbox/actions/windowActions.ts | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/src/vs/workbench/electron-sandbox/actions/windowActions.ts b/src/vs/workbench/electron-sandbox/actions/windowActions.ts index 352f575bc2d70..7a348c60a3580 100644 --- a/src/vs/workbench/electron-sandbox/actions/windowActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/windowActions.ts @@ -25,7 +25,6 @@ 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 { @@ -277,59 +276,26 @@ 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(); };