Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/game.py
diff options
context:
space:
mode:
Diffstat (limited to 'game.py')
-rw-r--r--game.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/game.py b/game.py
index 67a00bf..f374a87 100644
--- a/game.py
+++ b/game.py
@@ -770,8 +770,19 @@ class Game():
return True
def _expose_cb(self, win, event):
- self._sprites.redraw_sprites()
+ ''' Callback to handle window expose events '''
+ self.do_expose_event(event)
return True
+ def do_expose_event(self, event):
+ ''' Handle the expose-event by drawing '''
+ # Restrict Cairo to the exposed area
+ cr = self._canvas.window.cairo_create()
+ 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):
gtk.main_quit()