diff --git a/src/vs/workbench/services/keybinding/browser/keybindingService.ts b/src/vs/workbench/services/keybinding/browser/keybindingService.ts index 9294e1aae62fc4d25858cb89e552853f4fc891bb..32e8bef7c9220c1af96fecd3bebc35141562d4ea 100644 --- a/src/vs/workbench/services/keybinding/browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/browser/keybindingService.ts @@ -43,9 +43,10 @@ import * as objects from 'vs/base/common/objects'; import { IKeymapService } from 'vs/workbench/services/keybinding/common/keymapInfo'; import { getDispatchConfig } from 'vs/workbench/services/keybinding/common/dispatchConfig'; import { isArray } from 'vs/base/common/types'; -import { INavigatorWithKeyboard } from 'vs/workbench/services/keybinding/browser/navigatorKeyboard'; +import { INavigatorWithKeyboard, IKeyboard } from 'vs/workbench/services/keybinding/browser/navigatorKeyboard'; import { ScanCodeUtils, IMMUTABLE_CODE_TO_KEY_CODE } from 'vs/base/common/scanCode'; import { flatten } from 'vs/base/common/arrays'; +import { BrowserFeatures } from 'vs/base/browser/canIUse'; interface ContributedKeyBinding { command: string; @@ -238,16 +239,16 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { }); this._register(browser.onDidChangeFullscreen(() => { - const keyboard = (navigator).keyboard; + const keyboard: IKeyboard | null = (navigator).keyboard; - if (!keyboard) { + if (!BrowserFeatures.fullKeyboard) { return; } if (browser.isFullscreen()) { - keyboard.lock(['Escape']); + keyboard?.lock(['Escape']); } else { - keyboard.unlock(); + keyboard?.unlock(); } // update resolver which will bring back all unbound keyboard shortcuts @@ -359,7 +360,7 @@ export class WorkbenchKeybindingService extends AbstractKeybindingService { return false; } - if (browser.isFullscreen() && (navigator).keyboard) { + if (browser.isFullscreen() && BrowserFeatures.fullKeyboard) { return false; }