~larsu/evince/restore-zoom-popup

« back to all changes in this revision

Viewing changes to debian/patches/git_correct_page_info.patch

  • Committer: Sebastien Bacher
  • Date: 2013-11-12 11:09:50 UTC
  • Revision ID: seb128@ubuntu.com-20131112110950-77a44ahya7soa61i
* New upstream version
* debian/patches/git_give_focus_correctly.patch,
  debian/patches/git_correct_page_info.patch,
  debian/patches/git_djvu_segfault.patch:
  - dropped, those changes are in the new version

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
From 14092aab7c2c57becf045f3120297ab56ff76470 Mon Sep 17 00:00:00 2001
2
 
From: Carlos Garcia Campos <carlosgc@gnome.org>
3
 
Date: Wed, 30 Oct 2013 09:32:31 +0000
4
 
Subject: pdf: Do not use EvDocument API in get_info implementation
5
 
 
6
 
get_info might be called while the document is being loaded and the
7
 
EvDocument cache is not filled yet. Use only the poppler API to make
8
 
sure we get valid values. This fixes the page size always reported as
9
 
0x0 in the properties dialog.
10
 
 
11
 
https://bugzilla.gnome.org/show_bug.cgi?id=711093
12
 
---
13
 
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
14
 
index f4c63c7..c751768 100644
15
 
--- a/backend/pdf/ev-poppler.cc
16
 
+++ b/backend/pdf/ev-poppler.cc
17
 
@@ -795,12 +795,15 @@ pdf_document_get_info (EvDocument *document)
18
 
                g_free (metadata);
19
 
        }
20
 
 
21
 
-       info->n_pages = ev_document_get_n_pages (document);
22
 
+       info->n_pages = poppler_document_get_n_pages (PDF_DOCUMENT (document)->document);
23
 
 
24
 
        if (info->n_pages > 0) {
25
 
-               ev_document_get_page_size (document, 0,
26
 
-                                          &(info->paper_width),
27
 
-                                          &(info->paper_height));
28
 
+               PopplerPage *poppler_page;
29
 
+
30
 
+               poppler_page = poppler_document_get_page (PDF_DOCUMENT (document)->document, 0);
31
 
+               poppler_page_get_size (poppler_page, &(info->paper_width), &(info->paper_height));
32
 
+               g_object_unref (poppler_page);
33
 
+
34
 
                // Convert to mm.
35
 
                info->paper_width = info->paper_width / 72.0f * 25.4f;
36
 
                info->paper_height = info->paper_height / 72.0f * 25.4f;
37
 
diff --git a/backend/xps/xps-document.c b/backend/xps/xps-document.c
38
 
index 23f4737..b759098 100644
39
 
--- a/backend/xps/xps-document.c
40
 
+++ b/backend/xps/xps-document.c
41
 
@@ -171,16 +171,18 @@ xps_document_get_info (EvDocument *document)
42
 
                EV_DOCUMENT_INFO_PAPER_SIZE;
43
 
 
44
 
 
45
 
-       if (gxps_document_get_n_pages (xps->doc) > 0) {
46
 
-               ev_document_get_page_size (document, 0,
47
 
-                                          &(info->paper_width),
48
 
-                                          &(info->paper_height));
49
 
+        info->n_pages = gxps_document_get_n_pages (xps->doc);
50
 
+       if (info->n_pages > 0) {
51
 
+                GXPSPage *gxps_page;
52
 
+
53
 
+                gxps_page = gxps_document_get_page (xps->doc, 0, NULL);
54
 
+               gxps_page_get_size (gxps_page, &(info->paper_width), &(info->paper_height));
55
 
+                g_object_unref (gxps_page);
56
 
+
57
 
                info->paper_width  = info->paper_width / 96.0f * 25.4f;
58
 
                info->paper_height = info->paper_height / 96.0f * 25.4f;
59
 
        }
60
 
 
61
 
-       info->n_pages = gxps_document_get_n_pages (xps->doc);
62
 
-
63
 
        return info;
64
 
 }
65
 
 
66
 
--
67
 
cgit v0.9.2
68