@@ -492,7 +492,13 @@ export class ActivitybarPart extends Part implements IActivityBarService {
492492 const viewContainer = this . getViewContainer ( viewlet . id ) ! ;
493493 const viewDescriptors = this . viewDescriptorService . getViewDescriptors ( viewContainer ) ;
494494 this . onDidChangeActiveViews ( viewlet , viewDescriptors , viewContainer . hideIfEmpty ) ;
495- this . viewletDisposables . set ( viewlet . id , viewDescriptors . onDidChangeActiveViews ( ( ) => this . onDidChangeActiveViews ( viewlet , viewDescriptors , viewContainer . hideIfEmpty ) ) ) ;
495+
496+ const disposables = new DisposableStore ( ) ;
497+ disposables . add ( viewDescriptors . onDidChangeActiveViews ( ( ) => this . onDidChangeActiveViews ( viewlet , viewDescriptors , viewContainer . hideIfEmpty ) ) ) ;
498+ disposables . add ( viewDescriptors . onDidChangeViews ( ( ) => this . onDidUpdateViews ( viewlet , viewDescriptors ) ) ) ;
499+ disposables . add ( viewDescriptors . onDidMove ( ( ) => this . onDidUpdateViews ( viewlet , viewDescriptors ) ) ) ;
500+
501+ this . viewletDisposables . set ( viewlet . id , disposables ) ;
496502 }
497503 }
498504
@@ -507,16 +513,13 @@ export class ActivitybarPart extends Part implements IActivityBarService {
507513 }
508514
509515 private updateActivity ( viewlet : ViewletDescriptor , viewDescriptors : IViewDescriptorCollection ) : void {
510- const viewDescriptor = viewDescriptors . activeViewDescriptors [ 0 ] ;
511-
512- // Use the viewlet icon if any view inside belongs to it statically
513- const shouldUseViewletIcon = viewDescriptors . allViewDescriptors . some ( v => this . viewDescriptorService . getDefaultContainer ( v . id ) ?. id === viewlet . id ) ;
516+ const icon = viewDescriptors . getIcon ( ) ;
514517
515518 const activity : IActivity = {
516519 id : viewlet . id ,
517- name : shouldUseViewletIcon ? viewlet . name : viewDescriptor . name ,
518- cssClass : shouldUseViewletIcon ? viewlet . cssClass : ( isString ( viewDescriptor . containerIcon ) ? viewDescriptor . containerIcon : ( viewDescriptor . containerIcon === undefined ? 'codicon-window' : undefined ) ) ,
519- iconUrl : shouldUseViewletIcon ? viewlet . iconUrl : ( viewDescriptor . containerIcon instanceof URI ? viewDescriptor . containerIcon : undefined ) ,
520+ name : viewDescriptors . getTitle ( ) ,
521+ cssClass : isString ( icon ) ? icon : undefined ,
522+ iconUrl : icon instanceof URI ? icon : undefined ,
520523 keybindingId : viewlet . keybindingId
521524 } ;
522525
@@ -528,6 +531,10 @@ export class ActivitybarPart extends Part implements IActivityBarService {
528531 }
529532 }
530533
534+ private onDidUpdateViews ( viewlet : ViewletDescriptor , viewDescriptors : IViewDescriptorCollection ) : void {
535+ this . updateActivity ( viewlet , viewDescriptors ) ;
536+ }
537+
531538 private onDidChangeActiveViews ( viewlet : ViewletDescriptor , viewDescriptors : IViewDescriptorCollection , hideIfEmpty ?: boolean ) : void {
532539 if ( viewDescriptors . activeViewDescriptors . length ) {
533540 this . updateActivity ( viewlet , viewDescriptors ) ;
0 commit comments