summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Glöckner <[email protected]>2011-08-29 16:41:29 +0200
committerinfirit <[email protected]>2015-08-31 14:51:17 +0200
commitabbcdb540fc7b9b96b793be0620386ba0247300b (patch)
treeffd37bac7b353c6808b5ea696463523349f59933
parente5e2b894e070fd0509c0016e7285d78c6ff543c3 (diff)
downloadatril-abbcdb540fc7b9b96b793be0620386ba0247300b.tar.bz2
atril-abbcdb540fc7b9b96b793be0620386ba0247300b.tar.xz
pdf: Fix saving annotations added to different pages
Fixes bug #628378.
-rw-r--r--backend/pdf/ev-poppler.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 0edc83c6..c3d64ab6 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -2891,16 +2891,21 @@ pdf_document_annotations_add_annotation (EvDocumentAnnotations *document_annotat
if (pdf_document->annots) {
mapping_list = (EvMappingList *)g_hash_table_lookup (pdf_document->annots,
GINT_TO_POINTER (page->index));
+ } else {
+ pdf_document->annots = g_hash_table_new_full (g_direct_hash,
+ g_direct_equal,
+ (GDestroyNotify)NULL,
+ (GDestroyNotify)ev_mapping_list_unref);
+ mapping_list = NULL;
+ }
+
+ if (mapping_list) {
list = ev_mapping_list_get_list (mapping_list);
name = g_strdup_printf ("annot-%d-%d", page->index, g_list_length (list) + 1);
ev_annotation_set_name (annot, name);
g_free (name);
list = g_list_append (list, annot_mapping);
} else {
- pdf_document->annots = g_hash_table_new_full (g_direct_hash,
- g_direct_equal,
- (GDestroyNotify)NULL,
- (GDestroyNotify)ev_mapping_list_unref);
name = g_strdup_printf ("annot-%d-0", page->index);
ev_annotation_set_name (annot, name);
g_free (name);