diff options
author | Raul Gutierrez Segales <rgs@collabora.co.uk> | 2011-10-30 23:08:51 (GMT) |
---|---|---|
committer | Raul Gutierrez Segales <rgs@collabora.co.uk> | 2011-10-30 23:09:21 (GMT) |
commit | 40a80e7832abb64a4f09384b40a4d9fbce28fca6 (patch) | |
tree | ddde3a3041de39dd5395c3a5b0ee1f9702bbad47 | |
parent | 4c4212a7700eb68318f295ed8262794bedd7d8fd (diff) |
Use rsvg wrapper while rsvg gains introspection support
-rw-r--r-- | src/sugar3/graphics/icon.py | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/sugar3/graphics/icon.py b/src/sugar3/graphics/icon.py index 380e02f..e126a28 100644 --- a/src/sugar3/graphics/icon.py +++ b/src/sugar3/graphics/icon.py @@ -31,6 +31,7 @@ import cairo from sugar3.graphics.xocolor import XoColor from sugar3.util import LRU +from gi.repository import SugarExt _BADGE_SIZE = 0.45 @@ -59,9 +60,7 @@ class _SVGLoader(object): logging.error( 'Icon %s, entity %s is invalid.', file_name, entity) - # XXX this is very slow! why? - import rsvg - return rsvg.Handle(data=icon) + return SugarExt.RsvgWrapper.new(icon) class _IconInfo(object): @@ -164,9 +163,8 @@ class _IconBuffer(object): if badge_file_name.endswith('.svg'): handle = self._loader.load(badge_file_name, {}, self.cache) - dimensions = handle.get_dimension_data() - icon_width = int(dimensions[0]) - icon_height = int(dimensions[1]) + icon_width = handle.get_width() + icon_height = handle.get_height() pixbuf = handle.get_pixbuf() else: @@ -258,9 +256,8 @@ class _IconBuffer(object): if is_svg: handle = self._load_svg(icon_info.file_name) - dimensions = handle.get_dimension_data() - icon_width = int(dimensions[0]) - icon_height = int(dimensions[1]) + icon_width = handle.get_width() + icon_height = handle.get_height() else: pixbuf = GdkPixbuf.Pixbuf.new_from_file(icon_info.file_name) icon_width = pixbuf.get_width() |