From 3fff276a50cb457c0543d31d1a782c5bd962e47c Mon Sep 17 00:00:00 2001 From: Tobias Ortmayr Date: Wed, 13 Mar 2024 10:47:17 +0100 Subject: [PATCH] Fix rending of quickpick buttons (#13342) Ensure that the Theia specific wrapper for the MonacoQuickPickItem properly forwards assignments of the "buttons" property to the wrapped item. Fixes #13076 Contributed on behalf of STMicroelectronics --- packages/core/src/common/quick-pick-service.ts | 1 + packages/monaco/src/browser/monaco-quick-input-service.ts | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/packages/core/src/common/quick-pick-service.ts b/packages/core/src/common/quick-pick-service.ts index 935b6a3c80963..d37481d76d658 100644 --- a/packages/core/src/common/quick-pick-service.ts +++ b/packages/core/src/common/quick-pick-service.ts @@ -161,6 +161,7 @@ export interface QuickPick extends QuickInpu matchOnDescription: boolean; matchOnDetail: boolean; keepScrollPosition: boolean; + buttons: ReadonlyArray; readonly onDidAccept: Event<{ inBackground: boolean } | undefined>; readonly onDidChangeValue: Event; readonly onDidTriggerButton: Event; diff --git a/packages/monaco/src/browser/monaco-quick-input-service.ts b/packages/monaco/src/browser/monaco-quick-input-service.ts index 7d91adbc85a4f..777649ceb87b6 100644 --- a/packages/monaco/src/browser/monaco-quick-input-service.ts +++ b/packages/monaco/src/browser/monaco-quick-input-service.ts @@ -596,6 +596,14 @@ class MonacoQuickPick extends MonacoQuickInput implemen }); } + get buttons(): ReadonlyArray { + return this.wrapped.buttons as QuickInputButton[]; + } + + set buttons(buttons: ReadonlyArray) { + this.wrapped.buttons = buttons; + } + set items(itemList: readonly (T | QuickPickSeparator)[]) { // We need to store and apply the currently selected active items. // Since monaco compares these items by reference equality, creating new wrapped items will unmark any active items.