+ if not isinstance(self, gtk.Widget):
+ return
+
+ do_draw=False
+
+ try:
+ v=self.get_property('is-on-current-desktop')
+ if v:
+ do_draw=True
+ else:
+ self.draw_pending=True
+ except TypeError:
+ do_draw=True
+
+ if do_draw:
+ #self.queue_draw()
+ self.angle_timer_start=time.time()
+ gobject.timeout_add(20, self.timerAngle)
+ else:
+ if self.mode=='l':
+ self.setAngle(0)
+ else:
+ self.setAngle(90)
+
+ def timerAngle(self):
+ if self.angle_timer_start==0:
+ self.angle_timer_start=time.time()-0.05
+
+ dt=time.time()-self.angle_timer_start
+
+ # Duration of the rotation effect
+ rotation_time=0.5
+
+ da=90.0*dt/rotation_time
+
+ if self.mode=='l':
+ angle=90-da
+ else:
+ angle=da
+
+ if angle>=90:
+ angle=90
+ ret=False
+ elif angle<0:
+ angle=0
+ ret=False
+ else:
+ ret=True
+
+ if self.setAngle(angle):