Skip to content

Commit

Permalink
fix: backport keyboard layout detection fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Loïc Mangeonjean committed Feb 14, 2024
1 parent bd3221a commit d41ca14
Showing 1 changed file with 26 additions and 3 deletions.
29 changes: 26 additions & 3 deletions scripts/vscode.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5446,18 +5446,41 @@ index 708268ba3c3..956db0ac3bd 100644
}
return this._cachedResolver;
diff --git a/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts b/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts
index c55684f0424..bb50e96ff77 100644
index c55684f0424..ab8d76f8903 100644
--- a/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts
+++ b/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts
@@ -396,7 +396,7 @@ export class BrowserKeyboardMapperFactoryBase extends Disposable {
@@ -42,6 +42,7 @@ export class BrowserKeyboardMapperFactoryBase extends Disposable {
protected _keymapInfos: KeymapInfo[];
protected _mru: KeymapInfo[];
private _activeKeymapInfo: KeymapInfo | null;
+ private keyboardLayoutMapAllowed: boolean = (navigator as any).keyboard !== undefined;

get activeKeymap(): KeymapInfo | null {
return this._activeKeymapInfo;
@@ -394,9 +395,9 @@ export class BrowserKeyboardMapperFactoryBase extends Disposable {
}

private async _getBrowserKeyMapping(keyboardEvent?: IKeyboardEvent): Promise<IRawMixedKeyboardMapping | null> {
if ((navigator as any).keyboard) {
- if ((navigator as any).keyboard) {
+ if (this.keyboardLayoutMapAllowed) {
try {
- return (navigator as any).keyboard.getLayoutMap().then((e: any) => {
+ return await (navigator as any).keyboard.getLayoutMap().then((e: any) => {
const ret: IKeyboardMapping = {};
for (const key of e) {
ret[key[0]] = {
@@ -419,8 +420,10 @@ export class BrowserKeyboardMapperFactoryBase extends Disposable {
});
} catch {
// getLayoutMap can throw if invoked from a nested browsing context
+ this.keyboardLayoutMapAllowed = false;
}
- } else if (keyboardEvent && !keyboardEvent.shiftKey && !keyboardEvent.altKey && !keyboardEvent.metaKey && !keyboardEvent.metaKey) {
+ }
+ if (keyboardEvent && !keyboardEvent.shiftKey && !keyboardEvent.altKey && !keyboardEvent.metaKey && !keyboardEvent.metaKey) {
const ret: IKeyboardMapping = {};
const standardKeyboardEvent = keyboardEvent as StandardKeyboardEvent;
ret[standardKeyboardEvent.browserEvent.code] = {
diff --git a/src/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.ts b/src/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.ts
index e8c8239b35f..9017a971ee5 100644
--- a/src/vs/workbench/services/languageDetection/browser/languageDetectionSimpleWorker.ts
Expand Down

0 comments on commit d41ca14

Please sign in to comment.