From 0a8a6f8c2b6a08fd227da247accae926a4741ad8 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sun, 30 Oct 2011 08:10:02 +0000 Subject: cairo version of sprite library --- (limited to 'abacus_window.py') 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() -- cgit v0.9.1