@@ -139,6 +139,8 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
139139 var mode = newValues [ 1 ] ;
140140 var isDisabled = newValues [ 2 ] ;
141141 var wasDisabled = oldValues [ 2 ] ;
142+ var diameter = 0 ;
143+ var strokeWidth = 0 ;
142144
143145 if ( isDisabled !== wasDisabled ) {
144146 element . toggleClass ( DISABLED_CLASS , ! ! isDisabled ) ;
@@ -153,14 +155,28 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
153155 }
154156
155157 if ( mode === MODE_INDETERMINATE ) {
158+ if ( oldValues [ 1 ] === MODE_DETERMINATE ) {
159+ diameter = getSize ( scope . mdDiameter ) ;
160+ strokeWidth = getStroke ( diameter ) ;
161+ path . attr ( 'd' , getSvgArc ( diameter , strokeWidth , true ) ) ;
162+ path . attr ( 'stroke-dasharray' , ( diameter - strokeWidth ) * $window . Math . PI * 0.75 ) ;
163+ }
156164 startIndeterminateAnimation ( ) ;
157165 } else {
158166 var newValue = clamp ( newValues [ 0 ] ) ;
167+ var oldValue = clamp ( oldValues [ 0 ] ) ;
159168
160169 cleanupIndeterminateAnimation ( ) ;
161170
171+ if ( oldValues [ 1 ] === MODE_INDETERMINATE ) {
172+ diameter = getSize ( scope . mdDiameter ) ;
173+ strokeWidth = getStroke ( diameter ) ;
174+ path . attr ( 'd' , getSvgArc ( diameter , strokeWidth , false ) ) ;
175+ path . attr ( 'stroke-dasharray' , ( diameter - strokeWidth ) * $window . Math . PI ) ;
176+ }
177+
162178 element . attr ( 'aria-valuenow' , newValue ) ;
163- renderCircle ( clamp ( oldValues [ 0 ] ) , newValue ) ;
179+ renderCircle ( oldValue , newValue ) ;
164180 }
165181 }
166182
0 commit comments