diff --git a/src/notebooks/controllers/kernelSource/notebookKernelSourceSelector.ts b/src/notebooks/controllers/kernelSource/notebookKernelSourceSelector.ts index eaeadd58568..3ec91b351f6 100644 --- a/src/notebooks/controllers/kernelSource/notebookKernelSourceSelector.ts +++ b/src/notebooks/controllers/kernelSource/notebookKernelSourceSelector.ts @@ -377,7 +377,8 @@ export class NotebookKernelSourceSelector implements INotebookKernelSourceSelect matchOnDescription: true, matchOnDetail: true, supportBackInFirstStep: true, - activeItem: undefined + activeItem: undefined, + ignoreFocusOut: false }); return { quickPick, selection: selection as Promise }; }; diff --git a/src/platform/common/utils/multiStepInput.ts b/src/platform/common/utils/multiStepInput.ts index a852130d7b3..81ec7658f7f 100644 --- a/src/platform/common/utils/multiStepInput.ts +++ b/src/platform/common/utils/multiStepInput.ts @@ -54,6 +54,10 @@ export interface IQuickPickParameters { supportBackInFirstStep?: boolean; onDidTriggerItemButton?(e: QuickPickItemButtonEvent): void; onDidChangeItems?: Event; + /** + * Whether to close the quick pick when the user clicks outside the quickpick. + */ + ignoreFocusOut?: boolean; } // eslint-disable-next-line @typescript-eslint/naming-convention @@ -141,7 +145,8 @@ export class MultiStepInput implements IMultiStepInput { onDidTriggerItemButton, onDidTriggerButton, supportBackInFirstStep, - onDidChangeItems + onDidChangeItems, + ignoreFocusOut }: P): { quickPick: QuickPick; selection: Promise> } { const disposables: Disposable[] = []; const deferred = createDeferred>(); @@ -150,7 +155,7 @@ export class MultiStepInput implements IMultiStepInput { input.step = step; input.totalSteps = totalSteps; input.placeholder = placeholder; - input.ignoreFocusOut = true; + input.ignoreFocusOut = ignoreFocusOut ?? true; input.items = items; if (stopBusy) { input.busy = startBusy ?? false;