code: def redraw(self):
          
          if self.__drawing_queued == False: #if we are moving, then there is a timeout somewhere already
              self.__drawing_queued = True
              self._last_frame_time = dt.datetime.now()
              gobject.timeout_add(1000 / self.framerate, self.__redraw_loop)
docs: Queue redraw. The redraw will be performed not more often than
             the `framerate` allows