Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorDan Williams <dcbw@wireless-64.media.mit.edu>2007-01-08 22:12:20 (GMT)
committer Dan Williams <dcbw@wireless-64.media.mit.edu>2007-01-08 22:12:20 (GMT)
commit6b67c410e017545103f3d7a8f86d6f00a47ce2e2 (patch)
treea8bcc7f1921532c1990e04bfaadc4d505edacb5a /sugar
parent946a8f1b4206d0200a4b9baa0e79894871bfddce (diff)
Delete old surfaces when no longer used
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/canvasicon.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/sugar/graphics/canvasicon.py b/sugar/graphics/canvasicon.py
index f47f06b..071a745 100644
--- a/sugar/graphics/canvasicon.py
+++ b/sugar/graphics/canvasicon.py
@@ -82,27 +82,31 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
_cache = _IconCache()
def __init__(self, **kwargs):
+ self._buffer = None
self._size = 24
self._color = None
self._icon_name = None
hippo.CanvasBox.__init__(self, **kwargs)
- self._buffer = None
-
self.connect('button-press-event', self._button_press_event_cb)
+ def _invalidate_buffer(self, new_buffer):
+ if self._buffer:
+ del self._buffer
+ self._buffer = new_buffer
+
def do_set_property(self, pspec, value):
if pspec.name == 'icon-name':
self._icon_name = value
- self._buffer = None
+ self._invalidate_buffer(None)
self.emit_paint_needed(0, 0, -1, -1)
elif pspec.name == 'color':
- self._buffer = None
+ self._invalidate_buffer(None)
self._color = value
self.emit_paint_needed(0, 0, -1, -1)
elif pspec.name == 'size':
- self._buffer = None
+ self._invalidate_buffer(None)
self._size = value
self.emit_request_changed()
@@ -129,7 +133,6 @@ class CanvasIcon(hippo.CanvasBox, hippo.CanvasItem):
del ctx
self._buffer = surface
- self._buffer_scale = scale
return self._buffer