Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--backend/ev-attachment.c18
2 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9198e59..259bf04 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);