Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/window.py
diff options
context:
space:
mode:
Diffstat (limited to 'window.py')
-rw-r--r--window.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/window.py b/window.py
index 60f6309..e72fe5a 100644
--- a/window.py
+++ b/window.py
@@ -144,10 +144,21 @@ def distance(start,stop):
#
# Repaint
#
-def _expose_cb(win, event, tw):
- tw.sprites.redraw_sprites()
+def _expose_cb(tw, win, event):
+ ''' Callback to handle window expose events '''
+ tw.do_expose_event(event)
return True
+def do_expose_event(tw, event):
+ ''' Handle the expose-event by drawing '''
+ # Restrict Cairo to the exposed area
+ cr = tw.canvas.window.cairo_create()
+ cr.rectangle(event.area.x, event.area.y,
+ event.area.width, event.area.height)
+ cr.clip()
+ # Refresh sprite list
+ tw.sprites.redraw_sprites(cr=cr)
+
#
# callbacks
#