summaryrefslogtreecommitdiff
path: root/src/evbp-viewer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/evbp-viewer.c')
-rw-r--r--src/evbp-viewer.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/evbp-viewer.c b/src/evbp-viewer.c
index 73d3d68..1c7ad70 100644
--- a/src/evbp-viewer.c
+++ b/src/evbp-viewer.c
@@ -19,7 +19,9 @@
#include <config.h>
#include "evbp-viewer.h"
+#include "evbp-mime.h"
#include "ev-page-action.h"
+#include <string.h>
#include <gtk/gtk.h>
G_DEFINE_TYPE(EvbpViewer, evbp_viewer, GTK_TYPE_BOX)
@@ -103,9 +105,15 @@ evbp_viewer_save_copy(GtkAction *action, EvbpViewer *viewer)
* mozilla is likely a garbage temporary name, so try the document title
* first. */
title = ev_document_get_title(viewer->document);
- if (title)
- filename = g_strdup(title);
- else {
+ if (title) {
+ EvTypeInfo *typeinfo;
+ const gchar *suffix;
+
+ typeinfo = ev_backends_manager_get_document_type_info(viewer->document);
+ suffix = evbp_mime_get_suffix(*typeinfo->mime_types);
+ filename = g_strdup_printf("%s.%s", title, suffix);
+ g_free(typeinfo);
+ } else {
const gchar *uri;
gchar *path;