Blame SOURCES/evince-3.14.2-force-fixed-size-for-text-annotations.patch

d6c6b3
From 3710f078b9f3df433489ca3da6f8182e1dc8520c Mon Sep 17 00:00:00 2001
d6c6b3
From: Philipp Reinkemeier <philipp.reinkemeier@offis.de>
d6c6b3
Date: Thu, 4 Jun 2015 15:02:23 +0200
d6c6b3
Subject: pdf: Force text annotations to have a fixed size 24x24
d6c6b3
d6c6b3
Some tools create pdf text annotations with a /Rect field, whose
d6c6b3
volume is very small or zero. Nevertheless, one expects tool-tips
d6c6b3
when hovering them, or popup windows to appear when clicking them.
d6c6b3
This patch forces a fixed size for text annotations equal to the size
d6c6b3
of their icons.
d6c6b3
d6c6b3
https://bugzilla.gnome.org/show_bug.cgi?id=685334
d6c6b3
---
d6c6b3
 backend/pdf/ev-poppler.cc | 16 ++++++++++++----
d6c6b3
 1 file changed, 12 insertions(+), 4 deletions(-)
d6c6b3
d6c6b3
diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
d6c6b3
index e04ce01..56a29c5 100644
d6c6b3
--- a/backend/pdf/ev-poppler.cc
d6c6b3
+++ b/backend/pdf/ev-poppler.cc
d6c6b3
@@ -3102,10 +3102,18 @@ pdf_document_annotations_get_annotations (EvDocumentAnnotations *document_annota
d6c6b3
 			annot_set_unique_name (ev_annot);
d6c6b3
 
d6c6b3
 		annot_mapping = g_new (EvMapping, 1);
d6c6b3
-		annot_mapping->area.x1 = mapping->area.x1;
d6c6b3
-		annot_mapping->area.x2 = mapping->area.x2;
d6c6b3
-		annot_mapping->area.y1 = height - mapping->area.y2;
d6c6b3
-		annot_mapping->area.y2 = height - mapping->area.y1;
d6c6b3
+		if (EV_IS_ANNOTATION_TEXT (ev_annot)) {
d6c6b3
+			/* Force 24x24 rectangle */
d6c6b3
+			annot_mapping->area.x1 = mapping->area.x1;
d6c6b3
+			annot_mapping->area.x2 = annot_mapping->area.x1 + 24;
d6c6b3
+			annot_mapping->area.y1 = height - mapping->area.y2;
d6c6b3
+			annot_mapping->area.y2 = MIN(height, annot_mapping->area.y1 + 24);
d6c6b3
+		} else {
d6c6b3
+			annot_mapping->area.x1 = mapping->area.x1;
d6c6b3
+			annot_mapping->area.x2 = mapping->area.x2;
d6c6b3
+			annot_mapping->area.y1 = height - mapping->area.y2;
d6c6b3
+			annot_mapping->area.y2 = height - mapping->area.y1;
d6c6b3
+		}
d6c6b3
 		annot_mapping->data = ev_annot;
d6c6b3
 
d6c6b3
 		g_object_set_data_full (G_OBJECT (ev_annot),
d6c6b3
-- 
d6c6b3
cgit v0.12
d6c6b3