@@ -601,15 +601,14 @@ export interface IResourceResultsNavigationOptions {
601601
602602export class TreeResourceNavigator2 < T , TFilterData > extends Disposable {
603603
604- private readonly _openResource = new Emitter < IOpenEvent < T | null > > ( ) ;
605- readonly openResource : Event < IOpenEvent < T | null > > = this . _openResource . event ;
604+ private readonly _onDidOpenResource = new Emitter < IOpenEvent < T | null > > ( ) ;
605+ readonly onDidOpenResource : Event < IOpenEvent < T | null > > = this . _onDidOpenResource . event ;
606606
607607 constructor (
608- private tree : WorkbenchObjectTree < T , TFilterData > | WorkbenchAsyncDataTree < any , T , TFilterData > ,
608+ private tree : WorkbenchObjectTree < T , TFilterData > | WorkbenchDataTree < any , T , TFilterData > | WorkbenchAsyncDataTree < any , T , TFilterData > ,
609609 private options ?: IResourceResultsNavigationOptions
610610 ) {
611611 super ( ) ;
612-
613612 this . registerListeners ( ) ;
614613 }
615614
@@ -642,12 +641,15 @@ export class TreeResourceNavigator2<T, TFilterData> extends Disposable {
642641 }
643642
644643 const isDoubleClick = e . browserEvent . detail === 2 ;
645- const sideBySide = e . browserEvent instanceof MouseEvent && ( e . browserEvent . ctrlKey || e . browserEvent . metaKey || e . browserEvent . altKey ) ;
646- this . open ( ! isDoubleClick , isDoubleClick , sideBySide ) ;
644+
645+ if ( this . tree . openOnSingleClick || isDoubleClick ) {
646+ const sideBySide = e . browserEvent instanceof MouseEvent && ( e . browserEvent . ctrlKey || e . browserEvent . metaKey || e . browserEvent . altKey ) ;
647+ this . open ( ! isDoubleClick , isDoubleClick , sideBySide ) ;
648+ }
647649 }
648650
649651 private open ( preserveFocus : boolean , pinned : boolean , sideBySide : boolean ) : void {
650- this . _openResource . fire ( {
652+ this . _onDidOpenResource . fire ( {
651653 editorOptions : {
652654 preserveFocus,
653655 pinned,
@@ -904,6 +906,7 @@ export class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void>
904906 private hasDoubleSelection : IContextKey < boolean > ;
905907 private hasMultiSelection : IContextKey < boolean > ;
906908
909+ private _openOnSingleClick : boolean ;
907910 private _useAltAsMultipleSelectionModifier : boolean ;
908911
909912 constructor (
@@ -940,6 +943,7 @@ export class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void>
940943 this . hasDoubleSelection = WorkbenchListDoubleSelection . bindTo ( this . contextKeyService ) ;
941944 this . hasMultiSelection = WorkbenchListMultiSelection . bindTo ( this . contextKeyService ) ;
942945
946+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
943947 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
944948
945949 this . disposables . push (
@@ -961,6 +965,9 @@ export class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void>
961965 this . hasSelectionOrFocus . set ( selection . length > 0 || focus . length > 0 ) ;
962966 } ) ,
963967 configurationService . onDidChangeConfiguration ( e => {
968+ if ( e . affectsConfiguration ( openModeSettingKey ) ) {
969+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
970+ }
964971 if ( e . affectsConfiguration ( multiSelectModifierSettingKey ) ) {
965972 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
966973 }
@@ -979,6 +986,10 @@ export class WorkbenchObjectTree<T extends NonNullable<any>, TFilterData = void>
979986 ) ;
980987 }
981988
989+ get openOnSingleClick ( ) : boolean {
990+ return this . _openOnSingleClick ;
991+ }
992+
982993 get useAltAsMultipleSelectionModifier ( ) : boolean {
983994 return this . _useAltAsMultipleSelectionModifier ;
984995 }
@@ -997,6 +1008,7 @@ export class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<T
9971008 private hasDoubleSelection : IContextKey < boolean > ;
9981009 private hasMultiSelection : IContextKey < boolean > ;
9991010
1011+ private _openOnSingleClick : boolean ;
10001012 private _useAltAsMultipleSelectionModifier : boolean ;
10011013
10021014 constructor (
@@ -1034,6 +1046,7 @@ export class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<T
10341046 this . hasDoubleSelection = WorkbenchListDoubleSelection . bindTo ( this . contextKeyService ) ;
10351047 this . hasMultiSelection = WorkbenchListMultiSelection . bindTo ( this . contextKeyService ) ;
10361048
1049+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
10371050 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
10381051
10391052 this . disposables . push (
@@ -1055,6 +1068,9 @@ export class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<T
10551068 this . hasSelectionOrFocus . set ( selection . length > 0 || focus . length > 0 ) ;
10561069 } ) ,
10571070 configurationService . onDidChangeConfiguration ( e => {
1071+ if ( e . affectsConfiguration ( openModeSettingKey ) ) {
1072+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
1073+ }
10581074 if ( e . affectsConfiguration ( multiSelectModifierSettingKey ) ) {
10591075 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
10601076 }
@@ -1073,6 +1089,10 @@ export class WorkbenchDataTree<TInput, T, TFilterData = void> extends DataTree<T
10731089 ) ;
10741090 }
10751091
1092+ get openOnSingleClick ( ) : boolean {
1093+ return this . _openOnSingleClick ;
1094+ }
1095+
10761096 get useAltAsMultipleSelectionModifier ( ) : boolean {
10771097 return this . _useAltAsMultipleSelectionModifier ;
10781098 }
@@ -1086,6 +1106,7 @@ export class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends Async
10861106 private hasDoubleSelection : IContextKey < boolean > ;
10871107 private hasMultiSelection : IContextKey < boolean > ;
10881108
1109+ private _openOnSingleClick : boolean ;
10891110 private _useAltAsMultipleSelectionModifier : boolean ;
10901111
10911112 constructor (
@@ -1123,6 +1144,7 @@ export class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends Async
11231144 this . hasDoubleSelection = WorkbenchListDoubleSelection . bindTo ( this . contextKeyService ) ;
11241145 this . hasMultiSelection = WorkbenchListMultiSelection . bindTo ( this . contextKeyService ) ;
11251146
1147+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
11261148 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
11271149
11281150 this . disposables . push (
@@ -1144,6 +1166,9 @@ export class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends Async
11441166 this . hasSelectionOrFocus . set ( selection . length > 0 || focus . length > 0 ) ;
11451167 } ) ,
11461168 configurationService . onDidChangeConfiguration ( e => {
1169+ if ( e . affectsConfiguration ( openModeSettingKey ) ) {
1170+ this . _openOnSingleClick = useSingleClickToOpen ( configurationService ) ;
1171+ }
11471172 if ( e . affectsConfiguration ( multiSelectModifierSettingKey ) ) {
11481173 this . _useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier ( configurationService ) ;
11491174 }
@@ -1162,6 +1187,10 @@ export class WorkbenchAsyncDataTree<TInput, T, TFilterData = void> extends Async
11621187 ) ;
11631188 }
11641189
1190+ get openOnSingleClick ( ) : boolean {
1191+ return this . _openOnSingleClick ;
1192+ }
1193+
11651194 get useAltAsMultipleSelectionModifier ( ) : boolean {
11661195 return this . _useAltAsMultipleSelectionModifier ;
11671196 }
0 commit comments