@@ -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