Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-01-20 18:05:09 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-01-20 18:05:09 (GMT)
commit16291d257b4e25d4d49588ae0c4f309e6fe81cd1 (patch)
tree5e451ed216df6ba3204db9d808e477e939fd6771 /pdf
parent474415aebad611c804b35ca9a868e22f5b52bd34 (diff)
Keep offset in consideration in a few places
2005-01-20 Marco Pesenti Gritti <marco@gnome.org> * pdf/xpdf/pdf-document.cc: Keep offset in consideration in a few places * shell/ev-view.c: (expose_bin_window): Set the offsets so that the document is ever centered
Diffstat (limited to 'pdf')
-rw-r--r--pdf/xpdf/pdf-document.cc31
1 files changed, 20 insertions, 11 deletions
diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc
index 2ec9d5e..b9180bd 100644
--- a/pdf/xpdf/pdf-document.cc
+++ b/pdf/xpdf/pdf-document.cc
@@ -484,8 +484,8 @@ pdf_document_search_page_changed (PdfDocumentSearch *search)
&xMin, &yMin, &xMax, &yMax)) {
result.page_num = pdf_document->page;
- result.highlight_area.x = xMin;
- result.highlight_area.y = yMin;
+ result.highlight_area.x = xMin + pdf_document->page_x_offset;
+ result.highlight_area.y = yMin + pdf_document->page_y_offset;
result.highlight_area.width = xMax - xMin;
result.highlight_area.height = yMax - yMin;
@@ -499,8 +499,8 @@ pdf_document_search_page_changed (PdfDocumentSearch *search)
result.page_num = pdf_document->page;
- result.highlight_area.x = xMin;
- result.highlight_area.y = yMin;
+ result.highlight_area.x = xMin + pdf_document->page_x_offset;
+ result.highlight_area.y = yMin + pdf_document->page_y_offset;
result.highlight_area.width = xMax - xMin;
result.highlight_area.height = yMax - yMin;
@@ -1023,10 +1023,10 @@ pdf_document_get_text (EvDocument *document, GdkRectangle *rect)
const char *text;
int x1, y1, x2, y2;
- x1 = rect->x;
- y1 = rect->y;
- x2 = x1 + rect->width;
- y2 = y1 + rect->height;
+ x1 = rect->x + pdf_document->page_x_offset;
+ y1 = rect->y + pdf_document->page_y_offset;
+ x2 = x1 + rect->width + pdf_document->page_x_offset;
+ y2 = y1 + rect->height + pdf_document->page_y_offset;
sel_text = pdf_document->out->getText (x1, y1, x2, y2);
text = sel_text->getCString ();
@@ -1039,11 +1039,20 @@ pdf_document_get_link (EvDocument *document, int x, int y)
{
PdfDocument *pdf_document = PDF_DOCUMENT (document);
LinkAction *action;
+ double link_x, link_y;
- y = pdf_document->out->getBitmapHeight() - y;
+ /* Zoom */
+ link_x = x / pdf_document->scale;
+ link_y = y / pdf_document->scale;
- action = pdf_document->links->find ((double)x / pdf_document->scale,
- (double)y / pdf_document->scale);
+ /* Offset */
+ link_x -= pdf_document->page_x_offset;
+ link_y -= pdf_document->page_y_offset;
+
+ /* Inverse y */
+ link_y = pdf_document->out->getBitmapHeight() - link_y;
+
+ action = pdf_document->links->find (link_x, link_y);
if (action) {
return build_link_from_action (pdf_document, action, "");