Skip to content

Commit 43d68b6

Browse files
committed
1 parent 17c51e9 commit 43d68b6

1 file changed

Lines changed: 15 additions & 14 deletions

File tree

src/vs/base/browser/ui/list/listWidget.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,7 @@ export class MouseController<T> implements IDisposable {
508508
private multipleSelectionSupport: boolean;
509509
readonly multipleSelectionController: IMultipleSelectionController<T>;
510510
private openController: IOpenController;
511+
private mouseSupport: boolean;
511512
private disposables: IDisposable[] = [];
512513

513514
constructor(protected list: List<T>) {
@@ -518,15 +519,19 @@ export class MouseController<T> implements IDisposable {
518519
}
519520

520521
this.openController = list.options.openController || DefaultOpenController;
522+
this.mouseSupport = typeof list.options.mouseSupport === 'undefined' || !!list.options.mouseSupport;
523+
524+
if (this.mouseSupport) {
525+
list.onMouseDown(this.onMouseDown, this, this.disposables);
526+
list.onContextMenu(this.onContextMenu, this, this.disposables);
527+
list.onMouseDblClick(this.onDoubleClick, this, this.disposables);
528+
list.onTouchStart(this.onMouseDown, this, this.disposables);
529+
Gesture.addTarget(list.getHTMLElement());
530+
}
521531

522-
list.onMouseDown(this.onMouseDown, this, this.disposables);
523-
list.onContextMenu(this.onContextMenu, this, this.disposables);
524532
list.onMouseClick(this.onPointer, this, this.disposables);
525533
list.onMouseMiddleClick(this.onPointer, this, this.disposables);
526-
list.onMouseDblClick(this.onDoubleClick, this, this.disposables);
527-
list.onTouchStart(this.onMouseDown, this, this.disposables);
528534
list.onTap(this.onPointer, this, this.disposables);
529-
Gesture.addTarget(list.getHTMLElement());
530535
}
531536

532537
protected isSelectionSingleChangeEvent(event: IListMouseEvent<any> | IListTouchEvent<any>): boolean {
@@ -561,6 +566,10 @@ export class MouseController<T> implements IDisposable {
561566
}
562567

563568
protected onPointer(e: IListMouseEvent<T>): void {
569+
if (!this.mouseSupport) {
570+
return;
571+
}
572+
564573
if (isInputElement(e.browserEvent.target as HTMLElement)) {
565574
return;
566575
}
@@ -1069,11 +1078,6 @@ export class List<T> implements ISpliceable<T>, IDisposable {
10691078
private spliceable: ISpliceable<T>;
10701079
private styleElement: HTMLStyleElement;
10711080
private styleController: IStyleController;
1072-
private mouseController: MouseController<T> | undefined;
1073-
1074-
get multipleSelectionController(): IMultipleSelectionController<T> {
1075-
return (this.mouseController && this.mouseController.multipleSelectionController) || DefaultMultipleSelectionContoller;
1076-
}
10771081

10781082
private _onDidUpdateOptions = new Emitter<IListOptions<T>>();
10791083
readonly onDidUpdateOptions = this._onDidUpdateOptions.event;
@@ -1218,10 +1222,7 @@ export class List<T> implements ISpliceable<T>, IDisposable {
12181222
this.disposables.push(controller);
12191223
}
12201224

1221-
if (typeof _options.mouseSupport === 'boolean' ? _options.mouseSupport : true) {
1222-
this.mouseController = this.createMouseController(_options);
1223-
this.disposables.push(this.mouseController);
1224-
}
1225+
this.disposables.push(this.createMouseController(_options));
12251226

12261227
this.onFocusChange(this._onFocusChange, this, this.disposables);
12271228
this.onSelectionChange(this._onSelectionChange, this, this.disposables);

0 commit comments

Comments
 (0)