summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ev-metadata.c13
-rw-r--r--shell/ev-window.c2
2 files changed, 10 insertions, 5 deletions
diff --git a/shell/ev-metadata.c b/shell/ev-metadata.c
index dba8e511..4bf49ae8 100644
--- a/shell/ev-metadata.c
+++ b/shell/ev-metadata.c
@@ -22,6 +22,7 @@
#include <string.h>
#include "ev-metadata.h"
+#include "ev-file-helpers.h"
struct _EvMetadata {
GObject base;
@@ -129,9 +130,10 @@ ev_metadata_new (GFile *file)
g_return_val_if_fail (G_IS_FILE (file), NULL);
metadata = EV_METADATA (g_object_new (EV_TYPE_METADATA, NULL));
- metadata->file = g_object_ref (file);
-
- ev_metadata_load (metadata);
+ if (!ev_file_is_temp (file)) {
+ metadata->file = g_object_ref (file);
+ ev_metadata_load (metadata);
+ }
return metadata;
}
@@ -178,6 +180,10 @@ ev_metadata_set_string (EvMetadata *metadata,
GFileInfo *info;
gchar *gio_key;
+ g_hash_table_insert (metadata->items, g_strdup (key), g_strdup (value));
+ if (!metadata->file)
+ return TRUE;
+
info = g_file_info_new ();
gio_key = g_strconcat (EV_METADATA_NAMESPACE"::", key, NULL);
@@ -190,7 +196,6 @@ ev_metadata_set_string (EvMetadata *metadata,
}
g_free (gio_key);
- g_hash_table_insert (metadata->items, g_strdup (key), g_strdup (value));
g_file_set_attributes_async (metadata->file,
info,
0,
diff --git a/shell/ev-window.c b/shell/ev-window.c
index f046f7af..42505b77 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -2204,7 +2204,7 @@ ev_window_open_uri (EvWindow *ev_window,
g_object_unref (ev_window->priv->bookmarks);
source_file = g_file_new_for_uri (uri);
- if (!ev_file_is_temp (source_file) && ev_is_metadata_supported_for_file (source_file)) {
+ if (ev_is_metadata_supported_for_file (source_file)) {
ev_window->priv->metadata = ev_metadata_new (source_file);
ev_window_init_metadata_with_default_values (ev_window);
} else {