Fix #52274 - don't move focus when clicking the find option buttons with screenreader mode turned on, because NVDA sends click events instead of key events when pressing space on a focused button

This commit is contained in:
Rob Lourens
2018-09-21 13:46:33 -07:00
parent 529f705935
commit 4cd9739394
4 changed files with 33 additions and 4 deletions

View File

@@ -46,6 +46,7 @@ export class FindInput extends Widget {
private placeholder: string;
private validation: IInputValidator;
private label: string;
private fixFocusOnOptionClickEnabled = true;
private inputActiveOptionBorder: Color;
private inputBackground: Color;
@@ -146,6 +147,10 @@ export class FindInput extends Widget {
this.caseSensitive.disable();
}
public setFocusInputOnOptionClick(value: boolean): void {
this.fixFocusOnOptionClickEnabled = value;
}
public setEnabled(enabled: boolean): void {
if (enabled) {
this.enable();
@@ -312,7 +317,7 @@ export class FindInput extends Widget {
}));
this._register(this.regex.onChange(viaKeyboard => {
this._onDidOptionChange.fire(viaKeyboard);
if (!viaKeyboard) {
if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {
this.inputBox.focus();
}
this.setInputWidth();
@@ -329,7 +334,7 @@ export class FindInput extends Widget {
}));
this._register(this.wholeWords.onChange(viaKeyboard => {
this._onDidOptionChange.fire(viaKeyboard);
if (!viaKeyboard) {
if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {
this.inputBox.focus();
}
this.setInputWidth();
@@ -343,7 +348,7 @@ export class FindInput extends Widget {
}));
this._register(this.caseSensitive.onChange(viaKeyboard => {
this._onDidOptionChange.fire(viaKeyboard);
if (!viaKeyboard) {
if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {
this.inputBox.focus();
}
this.setInputWidth();