Skip to content

Commit 4439aca

Browse files
author
Benjamin Pasero
committed
debt - window max/min is electron only
1 parent 2195816 commit 4439aca

10 files changed

Lines changed: 39 additions & 136 deletions

File tree

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,36 @@ export class ElectronMainService implements AddContextToFunctions<IElectronServi
4646
}
4747
}
4848

49+
async isMaximized(windowId: number): Promise<boolean> {
50+
const window = this.windowsMainService.getWindowById(windowId);
51+
if (window) {
52+
return window.win.isMaximized();
53+
}
54+
55+
return false;
56+
}
57+
58+
async maximizeWindow(windowId: number): Promise<void> {
59+
const window = this.windowsMainService.getWindowById(windowId);
60+
if (window) {
61+
window.win.maximize();
62+
}
63+
}
64+
65+
async unmaximizeWindow(windowId: number): Promise<void> {
66+
const window = this.windowsMainService.getWindowById(windowId);
67+
if (window) {
68+
window.win.unmaximize();
69+
}
70+
}
71+
72+
async minimizeWindow(windowId: number): Promise<void> {
73+
const window = this.windowsMainService.getWindowById(windowId);
74+
if (window) {
75+
window.win.minimize();
76+
}
77+
}
78+
4979
//#endregion
5080

5181
//#region Dialog

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ export interface IElectronService {
2020
toggleFullScreen(): Promise<void>;
2121
handleTitleDoubleClick(): Promise<void>;
2222

23+
isMaximized(): Promise<boolean>;
24+
maximizeWindow(): Promise<void>;
25+
unmaximizeWindow(): Promise<void>;
26+
minimizeWindow(): Promise<void>;
27+
2328
// Dialogs
2429
showMessageBox(options: MessageBoxOptions): Promise<MessageBoxReturnValue>;
2530
showSaveDialog(options: SaveDialogOptions): Promise<SaveDialogReturnValue>;

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,6 @@ export interface IWindowsService {
8888
getRecentlyOpened(windowId: number): Promise<IRecentlyOpened>;
8989
focusWindow(windowId: number): Promise<void>;
9090
isFocused(windowId: number): Promise<boolean>;
91-
isMaximized(windowId: number): Promise<boolean>;
92-
maximizeWindow(windowId: number): Promise<void>;
93-
unmaximizeWindow(windowId: number): Promise<void>;
94-
minimizeWindow(windowId: number): Promise<void>;
9591

9692
// Global methods
9793
openWindow(windowId: number, uris: IURIToOpen[], options: IOpenSettings): Promise<void>;
@@ -159,10 +155,6 @@ export interface IWindowService {
159155
focusWindow(): Promise<void>;
160156
openWindow(uris: IURIToOpen[], options?: IOpenSettings): Promise<void>;
161157
isFocused(): Promise<boolean>;
162-
isMaximized(): Promise<boolean>;
163-
maximizeWindow(): Promise<void>;
164-
unmaximizeWindow(): Promise<void>;
165-
minimizeWindow(): Promise<void>;
166158
}
167159

168160
export type MenuBarVisibility = 'default' | 'visible' | 'toggle' | 'hidden';

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,6 @@ export class WindowsChannel implements IServerChannel {
5858
case 'getRecentlyOpened': return this.service.getRecentlyOpened(arg);
5959
case 'focusWindow': return this.service.focusWindow(arg);
6060
case 'isFocused': return this.service.isFocused(arg);
61-
case 'isMaximized': return this.service.isMaximized(arg);
62-
case 'maximizeWindow': return this.service.maximizeWindow(arg);
63-
case 'unmaximizeWindow': return this.service.unmaximizeWindow(arg);
64-
case 'minimizeWindow': return this.service.minimizeWindow(arg);
6561
case 'openWindow': {
6662
const urisToOpen: IURIToOpen[] = arg[1];
6763
const options: IOpenSettings = arg[2];

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

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,6 @@ export class WindowsService implements IWindowsService {
5858
return this.channel.call('isFocused', windowId);
5959
}
6060

61-
isMaximized(windowId: number): Promise<boolean> {
62-
return this.channel.call('isMaximized', windowId);
63-
}
64-
65-
maximizeWindow(windowId: number): Promise<void> {
66-
return this.channel.call('maximizeWindow', windowId);
67-
}
68-
69-
unmaximizeWindow(windowId: number): Promise<void> {
70-
return this.channel.call('unmaximizeWindow', windowId);
71-
}
72-
73-
minimizeWindow(windowId: number): Promise<void> {
74-
return this.channel.call('minimizeWindow', windowId);
75-
}
76-
7761
openWindow(windowId: number, uris: IURIToOpen[], options: IOpenSettings): Promise<void> {
7862
return this.channel.call('openWindow', [windowId, uris, options]);
7963
}

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

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -112,30 +112,6 @@ export class LegacyWindowsMainService extends Disposable implements IWindowsServ
112112
return this.withWindow(windowId, codeWindow => codeWindow.win.isFocused(), () => false)!;
113113
}
114114

115-
async isMaximized(windowId: number): Promise<boolean> {
116-
this.logService.trace('windowsService#isMaximized', windowId);
117-
118-
return this.withWindow(windowId, codeWindow => codeWindow.win.isMaximized(), () => false)!;
119-
}
120-
121-
async maximizeWindow(windowId: number): Promise<void> {
122-
this.logService.trace('windowsService#maximizeWindow', windowId);
123-
124-
return this.withWindow(windowId, codeWindow => codeWindow.win.maximize());
125-
}
126-
127-
async unmaximizeWindow(windowId: number): Promise<void> {
128-
this.logService.trace('windowsService#unmaximizeWindow', windowId);
129-
130-
return this.withWindow(windowId, codeWindow => codeWindow.win.unmaximize());
131-
}
132-
133-
async minimizeWindow(windowId: number): Promise<void> {
134-
this.logService.trace('windowsService#minimizeWindow', windowId);
135-
136-
return this.withWindow(windowId, codeWindow => codeWindow.win.minimize());
137-
}
138-
139115
async openWindow(windowId: number, urisToOpen: IURIToOpen[], options: IOpenSettings): Promise<void> {
140116
this.logService.trace('windowsService#openWindow');
141117
if (!urisToOpen || !urisToOpen.length) {

src/vs/workbench/browser/parts/titlebar/titlebarPart.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,20 +371,20 @@ export class TitlebarPart extends Part implements ITitleService {
371371
const minimizeIcon = append(minimizeIconContainer, $('div.window-icon'));
372372
addClass(minimizeIcon, 'window-minimize');
373373
this._register(addDisposableListener(minimizeIcon, EventType.CLICK, e => {
374-
this.windowService.minimizeWindow();
374+
this.electronService.minimizeWindow();
375375
}));
376376

377377
// Restore
378378
const restoreIconContainer = append(this.windowControls, $('div.window-icon-bg'));
379379
this.maxRestoreControl = append(restoreIconContainer, $('div.window-icon'));
380380
addClass(this.maxRestoreControl, 'window-max-restore');
381381
this._register(addDisposableListener(this.maxRestoreControl, EventType.CLICK, async e => {
382-
const maximized = await this.windowService.isMaximized();
382+
const maximized = await this.electronService.isMaximized();
383383
if (maximized) {
384-
return this.windowService.unmaximizeWindow();
384+
return this.electronService.unmaximizeWindow();
385385
}
386386

387-
return this.windowService.maximizeWindow();
387+
return this.electronService.maximizeWindow();
388388
}));
389389

390390
// Close

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

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,6 @@ export class SimpleWindowService extends Disposable implements IWindowService {
8484
return Promise.resolve(this.hasFocus);
8585
}
8686

87-
isMaximized(): Promise<boolean> {
88-
return Promise.resolve(false);
89-
}
90-
9187
async getRecentlyOpened(): Promise<IRecentlyOpened> {
9288
const recentlyOpenedRaw = this.storageService.get(SimpleWindowService.RECENTLY_OPENED_KEY, StorageScope.GLOBAL);
9389
if (recentlyOpenedRaw) {
@@ -142,18 +138,6 @@ export class SimpleWindowService extends Disposable implements IWindowService {
142138
return Promise.resolve();
143139
}
144140

145-
maximizeWindow(): Promise<void> {
146-
return Promise.resolve();
147-
}
148-
149-
unmaximizeWindow(): Promise<void> {
150-
return Promise.resolve();
151-
}
152-
153-
minimizeWindow(): Promise<void> {
154-
return Promise.resolve();
155-
}
156-
157141
async openWindow(_uris: IURIToOpen[], _options?: IOpenSettings): Promise<void> {
158142
const { openFolderInNewWindow } = this.shouldOpenNewWindow(_options);
159143
for (let i = 0; i < _uris.length; i++) {
@@ -236,22 +220,6 @@ export class SimpleWindowsService implements IWindowsService {
236220
return Promise.resolve();
237221
}
238222

239-
isMaximized(_windowId: number): Promise<boolean> {
240-
return Promise.resolve(false);
241-
}
242-
243-
maximizeWindow(_windowId: number): Promise<void> {
244-
return Promise.resolve();
245-
}
246-
247-
minimizeWindow(_windowId: number): Promise<void> {
248-
return Promise.resolve();
249-
}
250-
251-
unmaximizeWindow(_windowId: number): Promise<void> {
252-
return Promise.resolve();
253-
}
254-
255223
// Global methods
256224
openWindow(_windowId: number, _uris: IURIToOpen[], _options: IOpenSettings): Promise<void> {
257225
return Promise.resolve();

src/vs/workbench/services/window/electron-browser/windowService.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,6 @@ export class WindowService extends Disposable implements IWindowService {
7979
return this.windowsService.isFocused(this.windowId);
8080
}
8181

82-
isMaximized(): Promise<boolean> {
83-
return this.windowsService.isMaximized(this.windowId);
84-
}
85-
86-
maximizeWindow(): Promise<void> {
87-
return this.windowsService.maximizeWindow(this.windowId);
88-
}
89-
90-
unmaximizeWindow(): Promise<void> {
91-
return this.windowsService.unmaximizeWindow(this.windowId);
92-
}
93-
94-
minimizeWindow(): Promise<void> {
95-
return this.windowsService.minimizeWindow(this.windowId);
96-
}
97-
9882
private getRecentLabel(u: IURIToOpen): string {
9983
if (isFolderToOpen(u)) {
10084
return this.labelService.getWorkspaceLabel(u.folderUri, { verbose: true });

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,10 +1192,6 @@ export class TestWindowService implements IWindowService {
11921192
return Promise.resolve(false);
11931193
}
11941194

1195-
isMaximized(): Promise<boolean> {
1196-
return Promise.resolve(false);
1197-
}
1198-
11991195
getRecentlyOpened(): Promise<IRecentlyOpened> {
12001196
return Promise.resolve({
12011197
workspaces: [],
@@ -1215,18 +1211,6 @@ export class TestWindowService implements IWindowService {
12151211
return Promise.resolve();
12161212
}
12171213

1218-
maximizeWindow(): Promise<void> {
1219-
return Promise.resolve();
1220-
}
1221-
1222-
unmaximizeWindow(): Promise<void> {
1223-
return Promise.resolve();
1224-
}
1225-
1226-
minimizeWindow(): Promise<void> {
1227-
return Promise.resolve();
1228-
}
1229-
12301214
openWindow(_uris: IURIToOpen[], _options?: IOpenSettings): Promise<void> {
12311215
return Promise.resolve();
12321216
}
@@ -1309,22 +1293,6 @@ export class TestWindowsService implements IWindowsService {
13091293
return Promise.resolve();
13101294
}
13111295

1312-
isMaximized(_windowId: number): Promise<boolean> {
1313-
return Promise.resolve(false);
1314-
}
1315-
1316-
maximizeWindow(_windowId: number): Promise<void> {
1317-
return Promise.resolve();
1318-
}
1319-
1320-
minimizeWindow(_windowId: number): Promise<void> {
1321-
return Promise.resolve();
1322-
}
1323-
1324-
unmaximizeWindow(_windowId: number): Promise<void> {
1325-
return Promise.resolve();
1326-
}
1327-
13281296
// Global methods
13291297
openWindow(_windowId: number, _uris: IURIToOpen[], _options: IOpenSettings): Promise<void> {
13301298
return Promise.resolve();

0 commit comments

Comments
 (0)