https://issues.apache.org/ooo/show_bug.cgi?id=121164
--- Comment #3 from Ariel Constenla-Haile <[email protected]> --- It turns out that the control peer actually calls the respective VCL class (Throbber) to change the step time: AnimatedImagesPeer::setProperty() case BASEPROPERTY_STEP_TIME: { sal_Int32 nStepTime( 0 ); if ( i_value >>= nStepTime ) pThrobber->setStepTime( nStepTime ); break; } Unfortunately, Throbber::setStepTime() simply stores that value in a member variable void setStepTime( sal_Int32 nStepTime ) { mnStepTime = nStepTime; } that member variable is never used to actually set the AutoTimer timeout: the timeout is only set on the Throbber constructor, where the timeout value is set to a default value of 100: Throbber::Throbber( Window* i_parentWindow, WinBits i_style, const ImageSet i_imageSet ) :ImageControl( i_parentWindow, i_style ) ,mbRepeat( sal_True ) ,mnStepTime( 100 ) ,mnCurStep( 0 ) ,mnStepCount( 0 ) ,meImageSet( i_imageSet ) { maWaitTimer.SetTimeout( mnStepTime ); maWaitTimer.SetTimeoutHdl( LINK( this, Throbber, TimeOutHdl ) ); SetScaleMode( ImageScaleMode::None ); initImages(); } Possible solutions: a) make Throbber::setStepTime() update the AutoTimer's timeout, but what if the Throbber is running (== the timer is active)? b) reset the AutoTimer's timeout in Throbber::start(), that is, when the animation is started; this will have the effect that setting the step time while the animation is running will only take effect after it restarts c) .... -- You are receiving this mail because: You are the assignee for the bug.
