Skip to content

Commit bc797a3

Browse files
author
Benjamin Pasero
committed
sandbox - remove dependency to native keymap on startup
1 parent b6071d2 commit bc797a3

5 files changed

Lines changed: 8 additions & 13 deletions

File tree

src/vs/code/electron-main/app.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ export class CodeApplication extends Disposable {
303303
const nativeKeymap = await import('native-keymap');
304304
nativeKeymap.onDidChangeKeyboardLayout(() => {
305305
if (this.windowsMainService) {
306-
this.windowsMainService.sendToAll('vscode:keyboardLayoutChanged', false);
306+
this.windowsMainService.sendToAll('vscode:keyboardLayoutChanged');
307307
}
308308
});
309309
})();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ export interface IWindowsMainService {
106106
openExtensionDevelopmentHostWindow(extensionDevelopmentPath: string[], openConfig: IOpenConfiguration): ICodeWindow[];
107107

108108
sendToFocused(channel: string, ...args: any[]): void;
109-
sendToAll(channel: string, payload: any, windowIdsToIgnore?: number[]): void;
109+
sendToAll(channel: string, payload?: any, windowIdsToIgnore?: number[]): void;
110110

111111
getLastActiveWindow(): ICodeWindow | undefined;
112112

src/vs/workbench/electron-browser/desktop.main.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import { WorkspaceService } from 'vs/workbench/services/configuration/browser/co
1717
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
1818
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
1919
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
20-
import { KeyboardMapperFactory } from 'vs/workbench/services/keybinding/electron-browser/nativeKeymapService';
2120
import { INativeWindowConfiguration } from 'vs/platform/windows/node/window';
2221
import { ISingleFolderWorkspaceIdentifier, IWorkspaceInitializationPayload, ISingleFolderWorkspaceInitializationPayload, reviveWorkspaceIdentifier } from 'vs/platform/workspaces/common/workspaces';
2322
import { ILogService } from 'vs/platform/log/common/log';
@@ -77,9 +76,6 @@ class DesktopMain extends Disposable {
7776
setZoomFactor(zoomLevelToZoomFactor(zoomLevel));
7877
setZoomLevel(zoomLevel, true /* isTrusted */);
7978
setFullscreen(!!this.environmentService.configuration.fullscreen);
80-
81-
// Keyboard support
82-
KeyboardMapperFactory.INSTANCE._onKeyboardLayoutChanged();
8379
}
8480

8581
private reviveUris() {

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { applyZoom } from 'vs/platform/windows/electron-sandbox/window';
2020
import { setFullscreen, getZoomLevel } from 'vs/base/browser/browser';
2121
import { ICommandService, CommandsRegistry } from 'vs/platform/commands/common/commands';
2222
import { IResourceEditorInput } from 'vs/platform/editor/common/editor';
23-
import { KeyboardMapperFactory } from 'vs/workbench/services/keybinding/electron-browser/nativeKeymapService';
2423
import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals';
2524
import { IWorkspaceEditingService } from 'vs/workbench/services/workspaces/common/workspaceEditing';
2625
import { IMenuService, MenuId, IMenu, MenuItemAction, ICommandAction, SubmenuItemAction, MenuRegistry } from 'vs/platform/actions/common/actions';
@@ -210,11 +209,6 @@ export class NativeWindow extends Disposable {
210209
this.themeService.setOSHighContrast(false);
211210
});
212211

213-
// keyboard layout changed event
214-
ipcRenderer.on('vscode:keyboardLayoutChanged', () => {
215-
KeyboardMapperFactory.INSTANCE._onKeyboardLayoutChanged();
216-
});
217-
218212
// accessibility support changed event
219213
ipcRenderer.on('vscode:accessibilitySupportChanged', (event: unknown, accessibilitySupportEnabled: boolean) => {
220214
this.accessibilityService.setAccessibilitySupport(accessibilitySupportEnabled ? AccessibilitySupport.Enabled : AccessibilitySupport.Disabled);

src/vs/workbench/services/keybinding/electron-browser/nativeKeymapService.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { OS, OperatingSystem } from 'vs/base/common/platform';
1515
import { WindowsKeyboardMapper, windowsKeyboardMappingEquals } from 'vs/workbench/services/keybinding/common/windowsKeyboardMapper';
1616
import { MacLinuxKeyboardMapper, macLinuxKeyboardMappingEquals, IMacLinuxKeyboardMapping } from 'vs/workbench/services/keybinding/common/macLinuxKeyboardMapper';
1717
import { IKeyboardEvent } from 'vs/platform/keybinding/common/keybinding';
18+
import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals';
1819

1920
export class KeyboardMapperFactory {
2021
public static readonly INSTANCE = new KeyboardMapperFactory();
@@ -134,7 +135,7 @@ export class KeyboardMapperFactory {
134135
class NativeKeymapService extends Disposable implements IKeymapService {
135136
public _serviceBrand: undefined;
136137

137-
private readonly _onDidChangeKeyboardMapper = new Emitter<void>();
138+
private readonly _onDidChangeKeyboardMapper = this._register(new Emitter<void>());
138139
public readonly onDidChangeKeyboardMapper: Event<void> = this._onDidChangeKeyboardMapper.event;
139140

140141
constructor() {
@@ -143,6 +144,10 @@ class NativeKeymapService extends Disposable implements IKeymapService {
143144
this._register(KeyboardMapperFactory.INSTANCE.onDidChangeKeyboardMapper(() => {
144145
this._onDidChangeKeyboardMapper.fire();
145146
}));
147+
148+
ipcRenderer.on('vscode:keyboardLayoutChanged', () => {
149+
KeyboardMapperFactory.INSTANCE._onKeyboardLayoutChanged();
150+
});
146151
}
147152

148153
getKeyboardMapper(dispatchConfig: DispatchConfig): IKeyboardMapper {

0 commit comments

Comments
 (0)