# If this is False then animations are forcefully disabled
self.do_animations=True
+ self.angle_timer_start=0
+
+ # Duration of the rotation effect
+ self.rotation_time=0.8
+
def do_realize(self, config):
self.config=config
if do_draw and self.config.getAnimate() and self.do_animations:
#self.queue_draw()
- self.angle_timer_start=time.time()
- gobject.timeout_add(20, self.timerAngle)
+ # Don't start another timer
+ # Instead adjust the time start to produce a nice effect ;-)
+ if self.angle_timer_start==0:
+ self.angle_timer_start=time.time()
+ gobject.timeout_add(20, self.timerAngle)
+ else:
+ dt=time.time()-self.angle_timer_start
+ da=90.0*dt/self.rotation_time
+
+ da2=90.0-da
+ dt2=da2*self.rotation_time/90.0
+ self.angle_timer_start=time.time()-dt2
else:
if self.mode=='l':
self.setAngle(0)
dt=time.time()-self.angle_timer_start
- # Duration of the rotation effect
- rotation_time=0.8
-
- da=90.0*dt/rotation_time
+ da=90.0*dt/self.rotation_time
if self.mode=='l':
angle=90-da