Cancel edit when leaving widget (take 2) (#129458)

Fixes #125166
This commit is contained in:
Raymond Zhao 2021-07-26 18:35:19 -07:00 committed by GitHub
parent 19959ec90d
commit 87346b6fb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 2 deletions

View file

@ -24,7 +24,7 @@ import { Color, RGBA } from 'vs/base/common/color';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { KeyCode } from 'vs/base/common/keyCodes';
import { Disposable, DisposableStore, dispose } from 'vs/base/common/lifecycle';
import { Disposable, DisposableStore, dispose, toDisposable } from 'vs/base/common/lifecycle';
import { isIOS } from 'vs/base/common/platform';
import { escapeRegExpCharacters } from 'vs/base/common/strings';
import { isArray, isDefined, isUndefinedOrNull } from 'vs/base/common/types';
@ -1126,6 +1126,10 @@ export class SettingArrayRenderer extends AbstractSettingRenderer implements ITr
});
template.context = dataElement;
template.elementDisposables.add(toDisposable(() => {
template.listWidget.cancelEdit();
}));
template.onChange = (v) => {
onChange(v);
renderArrayValidations(dataElement, template, v, false);
@ -1263,6 +1267,11 @@ export class SettingObjectRenderer extends AbstractSettingObjectRenderer impleme
});
template.context = dataElement;
template.elementDisposables.add(toDisposable(() => {
template.objectDropdownWidget!.cancelEdit();
}));
template.onChange = (v: Record<string, unknown> | undefined) => {
onChange(v);
renderArrayValidations(dataElement, template, v, false);
@ -1379,6 +1388,9 @@ export class SettingExcludeRenderer extends AbstractSettingRenderer implements I
const value = getExcludeDisplayValue(dataElement);
template.excludeWidget.setValue(value);
template.context = dataElement;
template.elementDisposables.add(toDisposable(() => {
template.excludeWidget.cancelEdit();
}));
}
}

View file

@ -383,7 +383,7 @@ export abstract class AbstractListSettingWidget<TDataItem extends object> extend
this.renderList();
}
protected cancelEdit(): void {
public cancelEdit(): void {
this.model.setEditKey('none');
this.renderList();
}