From d5ef5acd056f71613394dc33f524496a45f8d808 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 8 Feb 2018 18:29:41 +0100 Subject: [PATCH] fix #43229 --- src/vs/base/browser/ui/list/listWidget.ts | 10 ++++++++-- src/vs/platform/list/browser/listService.ts | 9 ++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index 804081a26f0..ed5bf0ceba4 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -364,8 +364,14 @@ const DefaultMultipleSelectionContoller = { }; const DefaultOpenController = { - shouldOpen: (event: UIEvent) => true -}; + shouldOpen: (event: UIEvent) => { + if (event instanceof MouseEvent) { + return event.button === 0 /* left mouse button */ || event.button === 1 /* middle mouse button */; + } + + return true; + } +} as IOpenController; class MouseController implements IDisposable { diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index 6bb2fc6c91e..9fa1ab9b76b 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -125,15 +125,18 @@ class MultipleSelectionController implements IMultipleSelectionController } } -class OpenController implements IOpenController { +class WorkbenchOpenController implements IOpenController { constructor(private configurationService: IConfigurationService) { } shouldOpen(event: UIEvent): boolean { if (event instanceof MouseEvent) { const isDoubleClick = event.detail === 2; + if (!useSingleClickToOpen(this.configurationService) && !isDoubleClick) { + return false; + } - return useSingleClickToOpen(this.configurationService) || isDoubleClick; + return event.button === 0 /* left mouse button */ || event.button === 1 /* middle mouse button */; } return true; @@ -145,7 +148,7 @@ function handleListControllers(options: IListOptions, configurationService options.multipleSelectionController = new MultipleSelectionController(configurationService); } - options.openController = new OpenController(configurationService); + options.openController = new WorkbenchOpenController(configurationService); return options; } -- GitLab