@@ -34,8 +34,6 @@ import { isUndefinedOrNull } from 'vs/base/common/types';
3434import { IActivityBarService } from 'vs/workbench/services/activityBar/browser/activityBarService' ;
3535import { registerSingleton } from 'vs/platform/instantiation/common/extensions' ;
3636
37- const SCM_VIEWLET_ID = 'workbench.view.scm' ;
38-
3937interface ICachedViewlet {
4038 id : string ;
4139 iconUrl ?: UriComponents ;
@@ -136,7 +134,7 @@ export class ActivitybarPart extends Part implements IActivityBarService {
136134 for ( const viewlet of this . viewletService . getViewlets ( ) ) {
137135 this . enableCompositeActions ( viewlet ) ;
138136 const viewContainer = this . getViewContainer ( viewlet . id ) ;
139- if ( viewContainer ) {
137+ if ( viewContainer && viewContainer . hideIfEmpty ) {
140138 const viewDescriptors = this . viewsService . getViewDescriptors ( viewContainer ) ;
141139 if ( viewDescriptors ) {
142140 this . onDidChangeActiveViews ( viewlet , viewDescriptors ) ;
@@ -167,7 +165,7 @@ export class ActivitybarPart extends Part implements IActivityBarService {
167165 const viewletDescriptor = this . viewletService . getViewlet ( viewlet . getId ( ) ) ;
168166 if ( viewletDescriptor ) {
169167 const viewContainer = this . getViewContainer ( viewletDescriptor . id ) ;
170- if ( viewContainer ) {
168+ if ( viewContainer && viewContainer . hideIfEmpty ) {
171169 const viewDescriptors = this . viewsService . getViewDescriptors ( viewContainer ) ;
172170 if ( viewDescriptors && viewDescriptors . activeViewDescriptors . length === 0 ) {
173171 this . removeComposite ( viewletDescriptor . id , true ) ; // Update the composite bar by hiding
@@ -313,6 +311,10 @@ export class ActivitybarPart extends Part implements IActivityBarService {
313311 }
314312
315313 private shouldBeHidden ( viewletId : string , cachedViewlet : ICachedViewlet ) : boolean {
314+ const viewContainer = this . getViewContainer ( viewletId ) ;
315+ if ( ! viewContainer || ! viewContainer . hideIfEmpty ) {
316+ return false ;
317+ }
316318 return cachedViewlet && cachedViewlet . views && cachedViewlet . views . length
317319 ? cachedViewlet . views . every ( ( { when } ) => ! ! when && ! this . contextKeyService . contextMatchesRules ( ContextKeyExpr . deserialize ( when ) ) )
318320 : viewletId === TEST_VIEW_CONTAINER_ID /* Hide Test viewlet for the first time or it had no views registered before */ ;
@@ -488,11 +490,6 @@ export class ActivitybarPart extends Part implements IActivityBarService {
488490 }
489491
490492 private getViewContainer ( viewletId : string ) : ViewContainer | undefined {
491- // TODO: @Joao Remove this after moving SCM Viewlet to ViewContainerViewlet - https://github.com/Microsoft/vscode/issues/49054
492- if ( viewletId === SCM_VIEWLET_ID ) {
493- return undefined ;
494- }
495-
496493 const viewContainerRegistry = Registry . as < IViewContainersRegistry > ( ViewContainerExtensions . ViewContainersRegistry ) ;
497494 return viewContainerRegistry . get ( viewletId ) ;
498495 }
0 commit comments