Skip to content

Commit 365cda0

Browse files
committed
1 parent 112ca12 commit 365cda0

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

src/vs/workbench/contrib/extensions/browser/extensionEditor.ts

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ export class ExtensionEditor extends EditorPane {
579579
let preReleaseText: string | undefined;
580580
reset(template.preReleaseText);
581581
const disposables = this.transientDisposables.add(new DisposableStore());
582-
const updatePreReleaseText = () => {
582+
const updatePreReleaseText = (layout: boolean) => {
583583
const newPreReleaseText = ExtensionHoverWidget.getPreReleaseMessage(extension);
584584
if (preReleaseText !== newPreReleaseText) {
585585
preReleaseText = newPreReleaseText;
@@ -589,20 +589,23 @@ export class ExtensionEditor extends EditorPane {
589589
append(template.preReleaseText, $(`span${ThemeIcon.asCSSSelector(preReleaseIcon)}`));
590590
disposables.add(this.renderMarkdownText(preReleaseText, template.preReleaseText));
591591
}
592+
if (layout && this.dimension) {
593+
this.layout(this.dimension);
594+
}
592595
}
593596
};
594-
updatePreReleaseText();
597+
updatePreReleaseText(false);
595598
this.transientDisposables.add(this.extensionsWorkbenchService.onChange(e => {
596599
if (e && areSameExtensions(e.identifier, extension.identifier)) {
597-
updatePreReleaseText();
600+
updatePreReleaseText(true);
598601
}
599602
}));
600603
}
601604

602605
private setStatus(extension: IExtension, extensionStatus: ExtensionStatusAction, template: IExtensionEditorTemplate): void {
603606
const disposables = new DisposableStore();
604607
this.transientDisposables.add(disposables);
605-
const updateStatus = () => {
608+
const updateStatus = (layout: boolean) => {
606609
disposables.clear();
607610
reset(template.status);
608611
const status = extensionStatus.status;
@@ -613,17 +616,20 @@ export class ExtensionEditor extends EditorPane {
613616
}
614617
disposables.add(this.renderMarkdownText(status.message.value, append(template.status, $('.status-text'))));
615618
}
619+
if (layout && this.dimension) {
620+
this.layout(this.dimension);
621+
}
616622
};
617-
updateStatus();
618-
this.transientDisposables.add(extensionStatus.onDidChangeStatus(() => updateStatus()));
623+
updateStatus(false);
624+
this.transientDisposables.add(extensionStatus.onDidChangeStatus(() => updateStatus(true)));
619625

620626
const updateActionLayout = () => template.actionsAndStatusContainer.classList.toggle('list-layout', extension.state === ExtensionState.Installed);
621627
updateActionLayout();
622628
this.transientDisposables.add(this.extensionsWorkbenchService.onChange(() => updateActionLayout()));
623629
}
624630

625631
private setRecommendationText(extension: IExtension, template: IExtensionEditorTemplate): void {
626-
const updateRecommendationText = () => {
632+
const updateRecommendationText = (layout: boolean) => {
627633
reset(template.recommendation);
628634
const extRecommendations = this.extensionRecommendationsService.getAllRecommendationsWithReason();
629635
if (extRecommendations[extension.identifier.id.toLowerCase()]) {
@@ -635,9 +641,12 @@ export class ExtensionEditor extends EditorPane {
635641
} else if (this.extensionIgnoredRecommendationsService.globalIgnoredRecommendations.indexOf(extension.identifier.id.toLowerCase()) !== -1) {
636642
append(template.recommendation, $(`div.recommendation-text`, undefined, localize('recommendationHasBeenIgnored', "You have chosen not to receive recommendations for this extension.")));
637643
}
644+
if (layout && this.dimension) {
645+
this.layout(this.dimension);
646+
}
638647
};
639-
updateRecommendationText();
640-
this.transientDisposables.add(this.extensionRecommendationsService.onDidChangeRecommendations(() => updateRecommendationText()));
648+
updateRecommendationText(false);
649+
this.transientDisposables.add(this.extensionRecommendationsService.onDidChangeRecommendations(() => updateRecommendationText(true)));
641650
}
642651

643652
private renderMarkdownText(markdownText: string, parent: HTMLElement): IDisposable {

src/vs/workbench/contrib/extensions/browser/extensionsActions.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2372,6 +2372,12 @@ export class ExtensionStatusAction extends ExtensionAction {
23722372
}
23732373

23742374
private updateStatus(status: ExtensionStatus | undefined, updateClass: boolean): void {
2375+
if (this._status === status) {
2376+
return;
2377+
}
2378+
if (this._status && status && this._status.message === status.message && this._status.icon?.id === status.icon?.id) {
2379+
return;
2380+
}
23752381
this._status = status;
23762382
if (updateClass) {
23772383
if (this._status?.icon === errorIcon) {

0 commit comments

Comments
 (0)