diff options
-rw-r--r-- | SliderPuzzleWidget.py | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/SliderPuzzleWidget.py b/SliderPuzzleWidget.py index 29e0203..a88a144 100644 --- a/SliderPuzzleWidget.py +++ b/SliderPuzzleWidget.py @@ -575,17 +575,15 @@ class SliderPuzzleWidget (Gtk.Table): def get_image_as_png (self, cb=None): if self.image is None: return None - rv = None - if cb is None: - rv = StringIO() - cb = rv.write - def cb_inter(data, r, r2): - cb(data) - self.image.save_to_callbackv(cb_inter, None, "png", [], []) - if rv is not None: - return rv.getvalue() - else: - return True + # save_to_streamv is missing entirely, + # save_to_bufferv appears to be unusable, + # and it looks like save_to_callback's data is being truncated on NULL. + # Check http://ubuntuforums.org/showthread.php?t=1877793 + # XXX: Hack + self.image.savev("tmp.png", "png", [], []) + pb_s = GdkPixbuf.Pixbuf.new_from_file("tmp.png").to_string() + os.remove("tmp.png") + return pb_s def _freeze (self, journal=True): """ returns a json writable object representation capable of being used to restore our current status """ |