Skip to content

Commit 7361bd9

Browse files
committed
Revert "Do not clear selection in single-select case (fixes microsoft#57850)"
This reverts commit a6626a8.
1 parent 1b38a64 commit 7361bd9

3 files changed

Lines changed: 9 additions & 38 deletions

File tree

extensions/vscode-api-tests/src/singlefolder-tests/quickInput.test.ts

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ interface QuickPickExpected {
1616
acceptedItems: {
1717
active: string[][];
1818
selection: string[][];
19-
dispose: boolean[];
2019
};
2120
}
2221

@@ -37,8 +36,7 @@ suite('window namespace tests', function () {
3736
selectionItems: [['zwei']],
3837
acceptedItems: {
3938
active: [['zwei']],
40-
selection: [['zwei']],
41-
dispose: [true]
39+
selection: [['zwei']]
4240
},
4341
}, (err?: any) => done(err));
4442
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
@@ -63,8 +61,7 @@ suite('window namespace tests', function () {
6361
selectionItems: [['zwei']],
6462
acceptedItems: {
6563
active: [['zwei']],
66-
selection: [['zwei']],
67-
dispose: [true]
64+
selection: [['zwei']]
6865
},
6966
}, (err?: any) => done(err));
7067
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
@@ -89,8 +86,7 @@ suite('window namespace tests', function () {
8986
selectionItems: [['eins'], ['eins', 'zwei']],
9087
acceptedItems: {
9188
active: [['zwei']],
92-
selection: [['eins', 'zwei']],
93-
dispose: [true]
89+
selection: [['eins', 'zwei']]
9490
},
9591
}, (err?: any) => done(err));
9692
quickPick.canSelectMany = true;
@@ -106,31 +102,6 @@ suite('window namespace tests', function () {
106102
})()
107103
.catch(err => done(err));
108104
});
109-
110-
test('createQuickPick, selection events', function (_done) {
111-
let done = (err?: any) => {
112-
done = () => {};
113-
_done(err);
114-
};
115-
116-
const quickPick = createQuickPick({
117-
events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'],
118-
activeItems: [['eins']],
119-
selectionItems: [['zwei'], ['drei']],
120-
acceptedItems: {
121-
active: [['eins'], ['eins']],
122-
selection: [['zwei'], ['drei']],
123-
dispose: [false, true]
124-
},
125-
}, (err?: any) => done(err));
126-
quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label }));
127-
quickPick.show();
128-
129-
quickPick.selectedItems = [quickPick.items[1]];
130-
setTimeout(() => {
131-
quickPick.selectedItems = [quickPick.items[2]];
132-
}, 0);
133-
});
134105
});
135106
});
136107

@@ -163,9 +134,7 @@ function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void)
163134
assert.deepEqual(quickPick.activeItems.map(item => item.label), expectedActive);
164135
const expectedSelection = expected.acceptedItems.selection.shift();
165136
assert.deepEqual(quickPick.selectedItems.map(item => item.label), expectedSelection);
166-
if (expected.acceptedItems.dispose.shift()) {
167-
quickPick.dispose();
168-
}
137+
quickPick.dispose();
169138
} catch (err) {
170139
done(err);
171140
}

src/vs/workbench/browser/parts/quickinput/quickInput.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -496,9 +496,6 @@ class QuickPick<T extends IQuickPickItem> extends QuickInput implements IQuickPi
496496
}),
497497
this.ui.list.onDidChangeSelection(selectedItems => {
498498
if (this.canSelectMany) {
499-
if (selectedItems.length) {
500-
this.ui.list.setSelectedElements([]);
501-
}
502499
return;
503500
}
504501
if (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) {

src/vs/workbench/browser/parts/quickinput/quickInputList.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,11 @@ export class QuickInputList {
284284
this._onLeave.fire();
285285
}
286286
}));
287+
this.disposables.push(this.list.onSelectionChange(e => {
288+
if (e.elements.length) {
289+
this.list.setSelection([]);
290+
}
291+
}));
287292
}
288293

289294
@memoize

0 commit comments

Comments
 (0)