@@ -12,7 +12,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
1212import { chain } from 'vs/base/common/event' ;
1313import { Throttler } from 'vs/base/common/async' ;
1414import { domEvent } from 'vs/base/browser/event' ;
15- import { IDisposable , dispose , empty as EmptyDisposable } from 'vs/base/common/lifecycle' ;
15+ import { IDisposable , dispose , empty as EmptyDisposable , OneDisposable } from 'vs/base/common/lifecycle' ;
1616import { Builder , Dimension } from 'vs/base/browser/builder' ;
1717import { Viewlet } from 'vs/workbench/browser/viewlet' ;
1818import { append , $ , toggleClass } from 'vs/base/browser/dom' ;
@@ -157,6 +157,7 @@ export class SCMViewlet extends Viewlet {
157157 private list : List < ISCMResourceGroup | ISCMResource > ;
158158 private menus : SCMMenus ;
159159 private providerChangeDisposable : IDisposable = EmptyDisposable ;
160+ private badgeHandle = new OneDisposable ( ) ;
160161 private disposables : IDisposable [ ] = [ ] ;
161162
162163 constructor (
@@ -175,7 +176,7 @@ export class SCMViewlet extends Viewlet {
175176 super ( VIEWLET_ID , telemetryService ) ;
176177
177178 this . menus = this . instantiationService . createInstance ( SCMMenus ) ;
178- this . disposables . push ( this . menus ) ;
179+ this . disposables . push ( this . menus , this . badgeHandle ) ;
179180 }
180181
181182 private setActiveProvider ( activeProvider : ISCMProvider | undefined ) : void {
@@ -250,11 +251,12 @@ export class SCMViewlet extends Viewlet {
250251 . reduce < number > ( ( r , g ) => r + g . resources . length , 0 ) ;
251252
252253 // TODO: make number contributable by provider
253- const badge = count > 0
254- ? new NumberBadge ( count , num => localize ( 'scmPendingChangesBadge' , '{0} pending changes' , num ) )
255- : null ;
256-
257- this . activityBarService . showActivity ( VIEWLET_ID , badge , 'scm-viewlet-label' ) ;
254+ if ( count > 0 ) {
255+ const badge = new NumberBadge ( count , num => localize ( 'scmPendingChangesBadge' , '{0} pending changes' , num ) ) ;
256+ this . badgeHandle . value = this . activityBarService . showActivity ( VIEWLET_ID , badge , 'scm-viewlet-label' ) ;
257+ } else {
258+ this . badgeHandle . value = null ;
259+ }
258260
259261 const elements = provider . resources
260262 . reduce < ( ISCMResourceGroup | ISCMResource ) [ ] > ( ( r , g ) => [ ...r , g , ...g . resources ] , [ ] ) ;
0 commit comments