> draw_idle tells the canvas to redraw only if not busy, I think the problem is that my object tree is full of things that are moving from one frame to another, so the chances are always high that one thing must be in a new state to the others at any one beat.
This is a class, but what's it's parent? gtk.DrawingArea? > def __init__(self): > self._idleID = 0 > def draw_idle(self): > def idle_draw(*args): > self.draw() > self._idleID = 0 > return False > if self._idleID == 0: > self._idleID = gobject.idle_add(idle_draw) Ah, I never noticed the def within a def there. Okay, it seems I then control _idleD by checking if the current frame of the current object is actually in a different state or not. (which may actually be quite slow to do) But I'm not sure what gobject.idle_add is doing. Is it creating little timeout loops within each object-- i.e. making my loop through the stack irrelevant? In my ignorant wording: "Is is giving life to each object?" vs my current approach which 'touches' each object once per beat? \d _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/