Skip to content

Commit 44f38ca

Browse files
authored
Merge pull request microsoft#209486 from microsoft/merogge/screen-inline
in screen reader mode, disable inline completions when editor dictation is active
2 parents ace2b1b + e444051 commit 44f38ca

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
3232
import { mapObservableArrayCached } from 'vs/base/common/observableInternal/utils';
3333
import { ISettableObservable, observableValueOpts } from 'vs/base/common/observableInternal/base';
3434
import { itemsEquals, itemEquals } from 'vs/base/common/equals';
35+
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
3536

3637
export class InlineCompletionsController extends Disposable {
3738
static ID = 'editor.contrib.inlineCompletionsController';
@@ -55,7 +56,11 @@ export class InlineCompletionsController extends Disposable {
5556
});
5657
}
5758
));
58-
private readonly _enabled = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.inlineSuggest).enabled);
59+
private readonly _enabledInConfig = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.inlineSuggest).enabled);
60+
private readonly _isScreenReaderEnabled = observableFromEvent(this._accessibilityService.onDidChangeScreenReaderOptimized, () => this._accessibilityService.isScreenReaderOptimized());
61+
private readonly _editorDictationInProgress = observableFromEvent(this._contextKeyService.onDidChangeContext, () => this._contextKeyService.getContext(this.editor.getDomNode()).getValue('editorDictation.inProgress') === true);
62+
private readonly _enabled = derived(this, reader => this._enabledInConfig.read(reader) && (!this._isScreenReaderEnabled.read(reader) || !this._editorDictationInProgress.read(reader)));
63+
5964
private readonly _fontFamily = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(EditorOption.inlineSuggest).fontFamily);
6065

6166
private readonly _ghostTexts = derived(this, (reader) => {
@@ -95,6 +100,7 @@ export class InlineCompletionsController extends Disposable {
95100
@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,
96101
@IAccessibilitySignalService private readonly _accessibilitySignalService: IAccessibilitySignalService,
97102
@IKeybindingService private readonly _keybindingService: IKeybindingService,
103+
@IAccessibilityService private readonly _accessibilityService: IAccessibilityService,
98104
) {
99105
super();
100106

@@ -148,6 +154,7 @@ export class InlineCompletionsController extends Disposable {
148154
this.updateObservables(tx, getReason(e))
149155
)));
150156

157+
151158
this._register(editor.onDidChangeCursorPosition(e => transaction(tx => {
152159
/** @description InlineCompletionsController.onDidChangeCursorPosition */
153160
this.updateObservables(tx, VersionIdChangeReason.Other);

0 commit comments

Comments
 (0)