Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/abacus_window.py
diff options
context:
space:
mode:
authorWalter 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)
commit0a8a6f8c2b6a08fd227da247accae926a4741ad8 (patch)
tree8ed6bf615b8c092334fdc9e97902622023badb19 /abacus_window.py
parentfcb68dd46f952f9ec2e805c28f3db5c02e3b36f5 (diff)
cairo version of sprite library
Diffstat (limited to 'abacus_window.py')
-rw-r--r--abacus_window.py16
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()