@@ -27,7 +27,7 @@ import { ActionBar, IActionViewItemProvider } from 'vs/base/browser/ui/actionbar
2727import { IThemeService , LIGHT , registerThemingParticipant , IFileIconTheme } from 'vs/platform/theme/common/themeService' ;
2828import { isSCMResource , isSCMResourceGroup , connectPrimaryMenuToInlineActionBar } from './util' ;
2929import { attachBadgeStyler } from 'vs/platform/theme/common/styler' ;
30- import { WorkbenchCompressibleObjectTree } from 'vs/platform/list/browser/listService' ;
30+ import { WorkbenchCompressibleObjectTree , TreeResourceNavigator , IOpenEvent } from 'vs/platform/list/browser/listService' ;
3131import { IConfigurationService , ConfigurationTarget } from 'vs/platform/configuration/common/configuration' ;
3232import { disposableTimeout , ThrottledDelayer } from 'vs/base/common/async' ;
3333import { INotificationService } from 'vs/platform/notification/common/notification' ;
@@ -877,10 +877,8 @@ export class RepositoryPane extends ViewPane {
877877 accessibilityProvider : new SCMAccessibilityProvider ( )
878878 } ) as WorkbenchCompressibleObjectTree < TreeElement , FuzzyScore > ;
879879
880- this . _register ( Event . chain ( this . tree . onDidOpen )
881- . map ( e => e . elements [ 0 ] )
882- . filter < ISCMResource > ( ( e ) : e is ISCMResource => ! ! e && ! isSCMResourceGroup ( e ) && ! ResourceTree . isResourceNode ( e ) )
883- . on ( this . open , this ) ) ;
880+ const navigator = this . _register ( new TreeResourceNavigator ( this . tree , { openOnSelection : false } ) ) ;
881+ this . _register ( navigator . onDidOpenResource ( this . open , this ) ) ;
884882
885883 this . _register ( Event . chain ( this . tree . onDidPin )
886884 . map ( e => e . elements [ 0 ] )
@@ -1020,8 +1018,12 @@ export class RepositoryPane extends ViewPane {
10201018 return this . repository . provider ;
10211019 }
10221020
1023- private open ( e : ISCMResource ) : void {
1024- e . open ( ) ;
1021+ private open ( e : IOpenEvent < TreeElement | null > ) : void {
1022+ if ( ! e . element || isSCMResourceGroup ( e . element ) || ResourceTree . isResourceNode ( e . element ) ) {
1023+ return ;
1024+ }
1025+
1026+ e . element . open ( ! ! e . editorOptions . preserveFocus ) ;
10251027 }
10261028
10271029 private pin ( ) : void {
0 commit comments