fix focus on closeWidget (#214289)

* fix focus on `closeWidget`

* remove `disposeFromClose`
This commit is contained in:
Andrea Mah
2024-08-13 09:00:34 -07:00
committed by GitHub
parent a4f676a510
commit 1c31e75898
2 changed files with 12 additions and 1 deletions
@@ -105,9 +105,14 @@ export abstract class ReferencesController implements IEditorContribution {
modelPromise.cancel();
if (this._widget) {
this._storageService.store(storageKey, JSON.stringify(this._widget.layoutData), StorageScope.PROFILE, StorageTarget.MACHINE);
if (!this._widget.isClosing) {
// to prevent calling this too many times, check whether it was already closing.
this.closeWidget();
}
this._widget = undefined;
} else {
this.closeWidget();
}
this.closeWidget();
}));
this._disposables.add(this._widget.onDidSelectReference(event => {
@@ -211,6 +211,7 @@ export class ReferenceWidget extends peekView.PeekViewWidget {
private _previewContainer!: HTMLElement;
private _messageContainer!: HTMLElement;
private _dim = new dom.Dimension(0, 0);
private _isClosing = false; // whether or not a dispose is already in progress
constructor(
editor: ICodeEditor,
@@ -231,7 +232,12 @@ export class ReferenceWidget extends peekView.PeekViewWidget {
this.create();
}
get isClosing() {
return this._isClosing;
}
override dispose(): void {
this._isClosing = true;
this.setModel(undefined);
this._callOnDispose.dispose();
this._disposeOnNewModel.dispose();