From 7361bd990c5a94e4efb6c9ef687c3ff15f2b8a61 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 10 Sep 2018 23:08:17 +0200 Subject: [PATCH] Revert "Do not clear selection in single-select case (fixes #57850)" This reverts commit a6626a8d90325abaf288c9ee8d07d40013561673. --- .../src/singlefolder-tests/quickInput.test.ts | 39 ++----------------- .../browser/parts/quickinput/quickInput.ts | 3 -- .../parts/quickinput/quickInputList.ts | 5 +++ 3 files changed, 9 insertions(+), 38 deletions(-) diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/quickInput.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/quickInput.test.ts index 852f924b362ef..04f8ba296e3e0 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/quickInput.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/quickInput.test.ts @@ -16,7 +16,6 @@ interface QuickPickExpected { acceptedItems: { active: string[][]; selection: string[][]; - dispose: boolean[]; }; } @@ -37,8 +36,7 @@ suite('window namespace tests', function () { selectionItems: [['zwei']], acceptedItems: { active: [['zwei']], - selection: [['zwei']], - dispose: [true] + selection: [['zwei']] }, }, (err?: any) => done(err)); quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label })); @@ -63,8 +61,7 @@ suite('window namespace tests', function () { selectionItems: [['zwei']], acceptedItems: { active: [['zwei']], - selection: [['zwei']], - dispose: [true] + selection: [['zwei']] }, }, (err?: any) => done(err)); quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label })); @@ -89,8 +86,7 @@ suite('window namespace tests', function () { selectionItems: [['eins'], ['eins', 'zwei']], acceptedItems: { active: [['zwei']], - selection: [['eins', 'zwei']], - dispose: [true] + selection: [['eins', 'zwei']] }, }, (err?: any) => done(err)); quickPick.canSelectMany = true; @@ -106,31 +102,6 @@ suite('window namespace tests', function () { })() .catch(err => done(err)); }); - - test('createQuickPick, selection events', function (_done) { - let done = (err?: any) => { - done = () => {}; - _done(err); - }; - - const quickPick = createQuickPick({ - events: ['active', 'selection', 'accept', 'selection', 'accept', 'hide'], - activeItems: [['eins']], - selectionItems: [['zwei'], ['drei']], - acceptedItems: { - active: [['eins'], ['eins']], - selection: [['zwei'], ['drei']], - dispose: [false, true] - }, - }, (err?: any) => done(err)); - quickPick.items = ['eins', 'zwei', 'drei'].map(label => ({ label })); - quickPick.show(); - - quickPick.selectedItems = [quickPick.items[1]]; - setTimeout(() => { - quickPick.selectedItems = [quickPick.items[2]]; - }, 0); - }); }); }); @@ -163,9 +134,7 @@ function createQuickPick(expected: QuickPickExpected, done: (err?: any) => void) assert.deepEqual(quickPick.activeItems.map(item => item.label), expectedActive); const expectedSelection = expected.acceptedItems.selection.shift(); assert.deepEqual(quickPick.selectedItems.map(item => item.label), expectedSelection); - if (expected.acceptedItems.dispose.shift()) { - quickPick.dispose(); - } + quickPick.dispose(); } catch (err) { done(err); } diff --git a/src/vs/workbench/browser/parts/quickinput/quickInput.ts b/src/vs/workbench/browser/parts/quickinput/quickInput.ts index 703cc52d559f5..619cf08d83170 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInput.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInput.ts @@ -496,9 +496,6 @@ class QuickPick extends QuickInput implements IQuickPi }), this.ui.list.onDidChangeSelection(selectedItems => { if (this.canSelectMany) { - if (selectedItems.length) { - this.ui.list.setSelectedElements([]); - } return; } if (this.selectedItemsToConfirm !== this._selectedItems && equals(selectedItems, this._selectedItems, (a, b) => a === b)) { diff --git a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts index 3bb2a9c4d1267..ecbd5e588422b 100644 --- a/src/vs/workbench/browser/parts/quickinput/quickInputList.ts +++ b/src/vs/workbench/browser/parts/quickinput/quickInputList.ts @@ -284,6 +284,11 @@ export class QuickInputList { this._onLeave.fire(); } })); + this.disposables.push(this.list.onSelectionChange(e => { + if (e.elements.length) { + this.list.setSelection([]); + } + })); } @memoize