Skip to content

Commit 863c25a

Browse files
author
Benjamin Pasero
committed
debt - macOS touchbar is electron only
1 parent 8d3e7c6 commit 863c25a

9 files changed

Lines changed: 44 additions & 130 deletions

File tree

src/vs/platform/electron/electron-main/electronMainService.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows';
7-
import { MessageBoxOptions, MessageBoxReturnValue, shell, OpenDevToolsOptions, SaveDialogOptions, SaveDialogReturnValue, OpenDialogOptions, OpenDialogReturnValue, CrashReporterStartOptions, crashReporter } from 'electron';
7+
import { MessageBoxOptions, MessageBoxReturnValue, shell, OpenDevToolsOptions, SaveDialogOptions, SaveDialogReturnValue, OpenDialogOptions, OpenDialogReturnValue, CrashReporterStartOptions, crashReporter, Menu } from 'electron';
88
import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService';
99
import { OpenContext, INativeOpenDialogOptions } from 'vs/platform/windows/common/windows';
1010
import { isMacintosh } from 'vs/base/common/platform';
@@ -117,6 +117,34 @@ export class ElectronMainService implements ElectronServiceInterface {
117117

118118
//#endregion
119119

120+
//#region macOS Touchbar
121+
122+
async newWindowTab(): Promise<void> {
123+
this.windowsMainService.openNewTabbedWindow(OpenContext.API);
124+
}
125+
126+
async showPreviousWindowTab(): Promise<void> {
127+
Menu.sendActionToFirstResponder('selectPreviousTab:');
128+
}
129+
130+
async showNextWindowTab(): Promise<void> {
131+
Menu.sendActionToFirstResponder('selectNextTab:');
132+
}
133+
134+
async moveWindowTabToNewWindow(): Promise<void> {
135+
Menu.sendActionToFirstResponder('moveTabToNewWindow:');
136+
}
137+
138+
async mergeAllWindowTabs(): Promise<void> {
139+
Menu.sendActionToFirstResponder('mergeAllWindows:');
140+
}
141+
142+
async toggleWindowTabsBar(): Promise<void> {
143+
Menu.sendActionToFirstResponder('toggleTabBar:');
144+
}
145+
146+
//#endregion
147+
120148
//#region Lifecycle
121149

122150
async relaunch(windowId: number, options?: { addArgs?: string[], removeArgs?: string[] }): Promise<void> {

src/vs/platform/electron/node/electron.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ export interface IElectronService {
3737
openExternal(url: string): Promise<boolean>;
3838
updateTouchBar(items: ISerializableCommandAction[][]): Promise<void>;
3939

40+
// macOS Touchbar
41+
newWindowTab(): Promise<void>;
42+
showPreviousWindowTab(): Promise<void>;
43+
showNextWindowTab(): Promise<void>;
44+
moveWindowTabToNewWindow(): Promise<void>;
45+
mergeAllWindowTabs(): Promise<void>;
46+
toggleWindowTabsBar(): Promise<void>;
47+
4048
// Lifecycle
4149
relaunch(options?: { addArgs?: string[], removeArgs?: string[] }): Promise<void>;
4250
reload(): Promise<void>;

src/vs/platform/windows/common/windows.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,6 @@ export interface IWindowsService {
9595
unmaximizeWindow(windowId: number): Promise<void>;
9696
minimizeWindow(windowId: number): Promise<void>;
9797

98-
// macOS Native Tabs
99-
newWindowTab(): Promise<void>;
100-
showPreviousWindowTab(): Promise<void>;
101-
showNextWindowTab(): Promise<void>;
102-
moveWindowTabToNewWindow(): Promise<void>;
103-
mergeAllWindowTabs(): Promise<void>;
104-
toggleWindowTabsBar(): Promise<void>;
105-
10698
// Shared process
10799
whenSharedProcessReady(): Promise<void>;
108100
toggleSharedProcess(): Promise<void>;

src/vs/platform/windows/common/windowsIpc.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,6 @@ export class WindowsChannel implements IServerChannel {
5656
}));
5757
case 'removeFromRecentlyOpened': return this.service.removeFromRecentlyOpened(arg.map(URI.revive));
5858
case 'clearRecentlyOpened': return this.service.clearRecentlyOpened();
59-
case 'newWindowTab': return this.service.newWindowTab();
60-
case 'showPreviousWindowTab': return this.service.showPreviousWindowTab();
61-
case 'showNextWindowTab': return this.service.showNextWindowTab();
62-
case 'moveWindowTabToNewWindow': return this.service.moveWindowTabToNewWindow();
63-
case 'mergeAllWindowTabs': return this.service.mergeAllWindowTabs();
64-
case 'toggleWindowTabsBar': return this.service.toggleWindowTabsBar();
6559
case 'getRecentlyOpened': return this.service.getRecentlyOpened(arg);
6660
case 'focusWindow': return this.service.focusWindow(arg);
6761
case 'closeWindow': return this.service.closeWindow(arg);

src/vs/platform/windows/electron-browser/windowsService.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -59,30 +59,6 @@ export class WindowsService implements IWindowsService {
5959
return recentlyOpened;
6060
}
6161

62-
newWindowTab(): Promise<void> {
63-
return this.channel.call('newWindowTab');
64-
}
65-
66-
showPreviousWindowTab(): Promise<void> {
67-
return this.channel.call('showPreviousWindowTab');
68-
}
69-
70-
showNextWindowTab(): Promise<void> {
71-
return this.channel.call('showNextWindowTab');
72-
}
73-
74-
moveWindowTabToNewWindow(): Promise<void> {
75-
return this.channel.call('moveWindowTabToNewWindow');
76-
}
77-
78-
mergeAllWindowTabs(): Promise<void> {
79-
return this.channel.call('mergeAllWindowTabs');
80-
}
81-
82-
toggleWindowTabsBar(): Promise<void> {
83-
return this.channel.call('toggleWindowTabsBar');
84-
}
85-
8662
focusWindow(windowId: number): Promise<void> {
8763
return this.channel.call('focusWindow', windowId);
8864
}

src/vs/platform/windows/electron-main/legacyWindowsMainService.ts

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { assign } from 'vs/base/common/objects';
88
import { URI } from 'vs/base/common/uri';
99
import { IWindowsService, OpenContext, IEnterWorkspaceResult, IOpenSettings, IURIToOpen } from 'vs/platform/windows/common/windows';
1010
import { IEnvironmentService, ParsedArgs } from 'vs/platform/environment/common/environment';
11-
import { app, Menu, MessageBoxReturnValue, SaveDialogReturnValue, OpenDialogReturnValue, BrowserWindow, MessageBoxOptions, SaveDialogOptions, OpenDialogOptions } from 'electron';
11+
import { app, MessageBoxReturnValue, SaveDialogReturnValue, OpenDialogReturnValue, BrowserWindow, MessageBoxOptions, SaveDialogOptions, OpenDialogOptions } from 'electron';
1212
import { Event } from 'vs/base/common/event';
1313
import { IURLService, IURLHandler } from 'vs/platform/url/common/url';
1414
import { IWindowsMainService, ISharedProcess, ICodeWindow } from 'vs/platform/windows/electron-main/windows';
@@ -103,42 +103,6 @@ export class LegacyWindowsMainService extends Disposable implements IWindowsServ
103103
return this.withWindow(windowId, codeWindow => this.historyMainService.getRecentlyOpened(codeWindow.config.workspace, codeWindow.config.folderUri, codeWindow.config.filesToOpenOrCreate), () => this.historyMainService.getRecentlyOpened())!;
104104
}
105105

106-
async newWindowTab(): Promise<void> {
107-
this.logService.trace('windowsService#newWindowTab');
108-
109-
this.windowsMainService.openNewTabbedWindow(OpenContext.API);
110-
}
111-
112-
async showPreviousWindowTab(): Promise<void> {
113-
this.logService.trace('windowsService#showPreviousWindowTab');
114-
115-
Menu.sendActionToFirstResponder('selectPreviousTab:');
116-
}
117-
118-
async showNextWindowTab(): Promise<void> {
119-
this.logService.trace('windowsService#showNextWindowTab');
120-
121-
Menu.sendActionToFirstResponder('selectNextTab:');
122-
}
123-
124-
async moveWindowTabToNewWindow(): Promise<void> {
125-
this.logService.trace('windowsService#moveWindowTabToNewWindow');
126-
127-
Menu.sendActionToFirstResponder('moveTabToNewWindow:');
128-
}
129-
130-
async mergeAllWindowTabs(): Promise<void> {
131-
this.logService.trace('windowsService#mergeAllWindowTabs');
132-
133-
Menu.sendActionToFirstResponder('mergeAllWindows:');
134-
}
135-
136-
async toggleWindowTabsBar(): Promise<void> {
137-
this.logService.trace('windowsService#toggleWindowTabsBar');
138-
139-
Menu.sendActionToFirstResponder('toggleTabBar:');
140-
}
141-
142106
async focusWindow(windowId: number): Promise<void> {
143107
this.logService.trace('windowsService#focusWindow', windowId);
144108

src/vs/workbench/browser/web.simpleservices.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -293,30 +293,6 @@ export class SimpleWindowsService implements IWindowsService {
293293
return Promise.resolve([]);
294294
}
295295

296-
newWindowTab(): Promise<void> {
297-
return Promise.resolve();
298-
}
299-
300-
showPreviousWindowTab(): Promise<void> {
301-
return Promise.resolve();
302-
}
303-
304-
showNextWindowTab(): Promise<void> {
305-
return Promise.resolve();
306-
}
307-
308-
moveWindowTabToNewWindow(): Promise<void> {
309-
return Promise.resolve();
310-
}
311-
312-
mergeAllWindowTabs(): Promise<void> {
313-
return Promise.resolve();
314-
}
315-
316-
toggleWindowTabsBar(): Promise<void> {
317-
return Promise.resolve();
318-
}
319-
320296
getActiveWindowId(): Promise<number | undefined> {
321297
return Promise.resolve(0);
322298
}

src/vs/workbench/electron-browser/actions/windowActions.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,25 +258,25 @@ export class QuickSwitchWindow extends BaseSwitchWindow {
258258
}
259259

260260
export const NewWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) {
261-
return accessor.get(IWindowsService).newWindowTab();
261+
return accessor.get(IElectronService).newWindowTab();
262262
};
263263

264264
export const ShowPreviousWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) {
265-
return accessor.get(IWindowsService).showPreviousWindowTab();
265+
return accessor.get(IElectronService).showPreviousWindowTab();
266266
};
267267

268268
export const ShowNextWindowTabHandler: ICommandHandler = function (accessor: ServicesAccessor) {
269-
return accessor.get(IWindowsService).showNextWindowTab();
269+
return accessor.get(IElectronService).showNextWindowTab();
270270
};
271271

272272
export const MoveWindowTabToNewWindowHandler: ICommandHandler = function (accessor: ServicesAccessor) {
273-
return accessor.get(IWindowsService).moveWindowTabToNewWindow();
273+
return accessor.get(IElectronService).moveWindowTabToNewWindow();
274274
};
275275

276276
export const MergeWindowTabsHandlerHandler: ICommandHandler = function (accessor: ServicesAccessor) {
277-
return accessor.get(IWindowsService).mergeAllWindowTabs();
277+
return accessor.get(IElectronService).mergeAllWindowTabs();
278278
};
279279

280280
export const ToggleWindowTabsBarHandler: ICommandHandler = function (accessor: ServicesAccessor) {
281-
return accessor.get(IWindowsService).toggleWindowTabsBar();
281+
return accessor.get(IElectronService).toggleWindowTabsBar();
282282
};

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,30 +1362,6 @@ export class TestWindowsService implements IWindowsService {
13621362
throw new Error('not implemented');
13631363
}
13641364

1365-
newWindowTab(): Promise<void> {
1366-
return Promise.resolve();
1367-
}
1368-
1369-
showPreviousWindowTab(): Promise<void> {
1370-
return Promise.resolve();
1371-
}
1372-
1373-
showNextWindowTab(): Promise<void> {
1374-
return Promise.resolve();
1375-
}
1376-
1377-
moveWindowTabToNewWindow(): Promise<void> {
1378-
return Promise.resolve();
1379-
}
1380-
1381-
mergeAllWindowTabs(): Promise<void> {
1382-
return Promise.resolve();
1383-
}
1384-
1385-
toggleWindowTabsBar(): Promise<void> {
1386-
return Promise.resolve();
1387-
}
1388-
13891365
getActiveWindowId(): Promise<number | undefined> {
13901366
return Promise.resolve(undefined);
13911367
}

0 commit comments

Comments
 (0)