@@ -139,6 +139,8 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
139
139
var mode = newValues [ 1 ] ;
140
140
var isDisabled = newValues [ 2 ] ;
141
141
var wasDisabled = oldValues [ 2 ] ;
142
+ var diameter = 0 ;
143
+ var strokeWidth = 0 ;
142
144
143
145
if ( isDisabled !== wasDisabled ) {
144
146
element . toggleClass ( DISABLED_CLASS , ! ! isDisabled ) ;
@@ -153,14 +155,28 @@ function MdProgressCircularDirective($window, $mdProgressCircular, $mdTheming,
153
155
}
154
156
155
157
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
+ }
156
164
startIndeterminateAnimation ( ) ;
157
165
} else {
158
166
var newValue = clamp ( newValues [ 0 ] ) ;
167
+ var oldValue = clamp ( oldValues [ 0 ] ) ;
159
168
160
169
cleanupIndeterminateAnimation ( ) ;
161
170
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
+
162
178
element . attr ( 'aria-valuenow' , newValue ) ;
163
- renderCircle ( clamp ( oldValues [ 0 ] ) , newValue ) ;
179
+ renderCircle ( oldValue , newValue ) ;
164
180
}
165
181
}
166
182
0 commit comments