diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | backend/ev-attachment.c | 18 |
2 files changed, 22 insertions, 3 deletions
@@ -1,5 +1,12 @@ 2006-04-03 Carlos Garcia Campos <carlosgc@gnome.org> + * backend/ev-attachment.c: + + Fix a crash when there isn't a default application to open an + attachment + +2006-04-03 Carlos Garcia Campos <carlosgc@gnome.org> + * backend/ev-attachment.[ch]: * shell/ev-attachment-bar.[ch]: diff --git a/backend/ev-attachment.c b/backend/ev-attachment.c index 9d5aaff..f0002f3 100644 --- a/backend/ev-attachment.c +++ b/backend/ev-attachment.c @@ -364,12 +364,24 @@ ev_attachment_open (EvAttachment *attachment, GError **error) { - gboolean retval = FALSE; + gboolean retval = FALSE; + GnomeVFSMimeApplication *default_app = NULL; if (!attachment->priv->app) - attachment->priv->app = - gnome_vfs_mime_get_default_application (attachment->priv->mime_type); + default_app = gnome_vfs_mime_get_default_application (attachment->priv->mime_type); + if (!default_app) { + g_set_error (error, + EV_ATTACHMENT_ERROR, + 0, + _("Couldn't open attachment '%s'"), + attachment->priv->name); + + return FALSE; + } + + attachment->priv->app = default_app; + if (attachment->priv->tmp_uri && g_file_test (attachment->priv->tmp_uri, G_FILE_TEST_EXISTS)) { retval = ev_attachment_launch_app (attachment, error); |