Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/libdocument
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2008-02-16 11:53:30 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2008-02-16 11:53:30 (GMT)
commit411b128d9f6b829b1b3f35c89fe0fef595a2b913 (patch)
tree612d07936b6615c37cf37113da5101fb8497004b /libdocument
parentc083ad4aef4e800e321ecff8bc434238ab5aba8e (diff)
Return a real uri instead of a filename when saving an image. Fixes images
2008-02-16 Carlos Garcia Campos <carlosgc@gnome.org> * libdocument/ev-image.c: (ev_image_finalize), (ev_image_save_tmp): Return a real uri instead of a filename when saving an image. Fixes images drag an drop from evince to nautilus. svn path=/trunk/; revision=2917
Diffstat (limited to 'libdocument')
-rw-r--r--libdocument/ev-image.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libdocument/ev-image.c b/libdocument/ev-image.c
index 4276dd4..1fa6bfd 100644
--- a/libdocument/ev-image.c
+++ b/libdocument/ev-image.c
@@ -46,7 +46,11 @@ ev_image_finalize (GObject *object)
}
if (image->priv->tmp_uri) {
- ev_tmp_filename_unlink (image->priv->tmp_uri);
+ gchar *filename;
+
+ filename = g_filename_from_uri (image->priv->tmp_uri, NULL, NULL);
+ ev_tmp_filename_unlink (filename);
+ g_free (filename);
g_free (image->priv->tmp_uri);
image->priv->tmp_uri = NULL;
}
@@ -128,6 +132,7 @@ ev_image_save_tmp (EvImage *image,
GdkPixbuf *pixbuf)
{
GError *error = NULL;
+ gchar *filename;
g_return_val_if_fail (EV_IS_IMAGE (image), NULL);
g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
@@ -135,18 +140,21 @@ ev_image_save_tmp (EvImage *image,
if (image->priv->tmp_uri)
return image->priv->tmp_uri;
- image->priv->tmp_uri = ev_tmp_filename ("image");
- gdk_pixbuf_save (pixbuf, image->priv->tmp_uri,
+ filename = ev_tmp_filename ("image");
+ gdk_pixbuf_save (pixbuf, filename,
"png", &error,
"compression", "3", NULL);
- if (!error)
+ if (!error) {
+ image->priv->tmp_uri = g_filename_to_uri (filename, NULL, NULL);
+ g_free (filename);
+
return image->priv->tmp_uri;
+ }
/* Erro saving image */
g_warning (error->message);
g_error_free (error);
- g_free (image->priv->tmp_uri);
- image->priv->tmp_uri = NULL;
+ g_free (filename);
return NULL;
}