diff options
Diffstat (limited to 'src/evbp-viewer.c')
-rw-r--r-- | src/evbp-viewer.c | 14 |
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; |