diff options
author | Walter Bender <walter.bender@gmail.com> | 2011-10-30 08:10:02 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2011-10-30 08:10:02 (GMT) |
commit | 0a8a6f8c2b6a08fd227da247accae926a4741ad8 (patch) | |
tree | 8ed6bf615b8c092334fdc9e97902622023badb19 /abacus_window.py | |
parent | fcb68dd46f952f9ec2e805c28f3db5c02e3b36f5 (diff) |
cairo version of sprite library
Diffstat (limited to 'abacus_window.py')
-rw-r--r-- | abacus_window.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/abacus_window.py b/abacus_window.py index 9be9b89..b340a8f 100644 --- a/abacus_window.py +++ b/abacus_window.py @@ -857,9 +857,23 @@ class Abacus(): def _expose_cb(self, win, event): ''' Callback to handle window expose events ''' - self.sprites.redraw_sprites(event.area) + self.do_expose_event(event) return True + # Handle the expose-event by drawing + def do_expose_event(self, event): + + # Create the cairo context + cr = self.canvas.window.cairo_create() + + # Restrict Cairo to the exposed area; avoid extra work + cr.rectangle(event.area.x, event.area.y, + event.area.width, event.area.height) + cr.clip() + + # Refresh sprite list + self.sprites.redraw_sprites(cr=cr) + def _destroy_cb(self, win, event): ''' Callback to handle quit ''' gtk.main_quit() |