Skip to content

Commit b2ea188

Browse files
committed
Fix pinned items showing when toggling quick input toggles
1 parent f8d15ab commit b2ea188

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

src/vs/base/parts/quickinput/common/quickInput.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,7 @@ export interface IQuickPick<T extends IQuickPickItem> extends IQuickInput {
342342

343343
hideCheckAll: boolean;
344344

345+
// TODO: Fix layering issue
345346
additionalToggles: Toggle[] | undefined;
346347
}
347348

src/vs/platform/quickinput/browser/quickPickPin.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,22 @@ const buttonClasses = [pinButtonClass, pinnedButtonClass];
1919
* Shows the quickpick once formatted.
2020
*/
2121
export async function showWithPinnedItems(storageService: IStorageService, storageKey: string, quickPick: IQuickPick<IQuickPickItem>, filterDuplicates?: boolean): Promise<void> {
22+
const itemsWithoutPinned = quickPick.items;
23+
let itemsWithPinned = _formatPinnedItems(storageKey, quickPick, storageService, undefined, filterDuplicates);
2224
quickPick.onDidTriggerItemButton(async buttonEvent => {
2325
const expectedButton = buttonEvent.button.iconClass && buttonClasses.includes(buttonEvent.button.iconClass);
2426
if (expectedButton) {
25-
quickPick.items = await _formatPinnedItems(storageKey, quickPick, storageService, buttonEvent.item, filterDuplicates);
27+
quickPick.items = itemsWithoutPinned;
28+
itemsWithPinned = _formatPinnedItems(storageKey, quickPick, storageService, buttonEvent.item, filterDuplicates);
29+
quickPick.items = quickPick.value ? itemsWithoutPinned : itemsWithPinned;
2630
}
2731
});
2832
quickPick.onDidChangeValue(async value => {
29-
// don't show pinned items in the search results
30-
quickPick.items = value ? quickPick.items.filter(i => i.type !== 'separator' && !i.buttons?.find(b => b.iconClass === pinnedButtonClass)) : quickPick.items;
33+
// Return pinned items if there is no search value
34+
quickPick.items = value ? itemsWithoutPinned : itemsWithPinned;
3135
});
32-
quickPick.items = await _formatPinnedItems(storageKey, quickPick, storageService, undefined, filterDuplicates);
33-
await quickPick.show();
36+
quickPick.items = quickPick.value ? itemsWithoutPinned : itemsWithPinned;
37+
quickPick.show();
3438
}
3539

3640
function _formatPinnedItems(storageKey: string, quickPick: IQuickPick<IQuickPickItem>, storageService: IStorageService, changedItem?: IQuickPickItem, filterDuplicates?: boolean): QuickPickItem[] {

src/vs/workbench/contrib/terminal/browser/terminalInstance.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1011,7 +1011,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
10111011
if (items.length === 0) {
10121012
return;
10131013
}
1014-
// TODO: Toggling fuzzy shows pinned again
10151014
const fuzzySearchToggle = new Toggle({
10161015
title: 'Fuzzy search',
10171016
icon: Codicon.searchFuzzy,

0 commit comments

Comments
 (0)