Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@redhat.com>2005-05-11 05:20:51 (GMT)
committer Jonathan Blandford <jrb@src.gnome.org>2005-05-11 05:20:51 (GMT)
commitf0f15671240dd6e99f22e91386bd384246f2d4cd (patch)
treea16c9c14ffadfd246dcb06fb477a4c60af7cf6a4
parent7a1449773ef2f1619c17a7ec8873562afaa6cd05 (diff)
make page size calculation consistent and set it to (int)( width * scale +
Wed May 11 01:18:29 2005 Jonathan Blandford <jrb@redhat.com> * pdf/ev-poppler.cc: * backend/ev-page-cache.c: make page size calculation consistent and set it to (int)( width * scale + 0.5). This makes the weird line going through the middle of the page go away. * shell/ev-view.c: move painting the background page after checking the expose area covers us.
-rw-r--r--ChangeLog10
-rw-r--r--backend/ev-page-cache.c4
-rw-r--r--pdf/ev-poppler.cc4
-rw-r--r--shell/ev-view.c10
4 files changed, 20 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index d40a013..60e0311 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Wed May 11 01:18:29 2005 Jonathan Blandford <jrb@redhat.com>
+
+ * pdf/ev-poppler.cc:
+ * backend/ev-page-cache.c: make page size calculation consistent
+ and set it to (int)( width * scale + 0.5). This makes the weird
+ line going through the middle of the page go away.
+
+ * shell/ev-view.c: move painting the background page after
+ checking the expose area covers us.
+
2005-05-11 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* data/evince-password.glade:
diff --git a/backend/ev-page-cache.c b/backend/ev-page-cache.c
index c66a1a4..6302c42 100644
--- a/backend/ev-page-cache.c
+++ b/backend/ev-page-cache.c
@@ -308,9 +308,9 @@ ev_page_cache_get_size (EvPageCache *page_cache,
}
if (width)
- *width = (*width) * scale;
+ *width = (int) ((*width) * scale + 0.5);
if (width)
- *height = (*height) * scale;
+ *height = (int) ((*height) * scale + 0.5);
}
diff --git a/pdf/ev-poppler.cc b/pdf/ev-poppler.cc
index 7b55b08..3261355 100644
--- a/pdf/ev-poppler.cc
+++ b/pdf/ev-poppler.cc
@@ -254,8 +254,8 @@ pdf_document_render_pixbuf (EvDocument *document,
page);
poppler_page_get_size (poppler_page, &width_points, &height_points);
- width = (int) ceil (width_points * scale);
- height = (int) ceil (height_points * scale);
+ width = (int) ((width_points * scale) + 0.5);
+ height = (int) ((height_points * scale) + 0.5);
pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
FALSE, 8,
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 6dfe181..cf60e36 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -940,10 +940,6 @@ draw_one_page (EvView *view,
page, view->scale,
&width, &height);
- ev_document_misc_paint_one_page (view->bin_window,
- GTK_WIDGET (view),
- page_area, border);
-
/* Render the document itself */
real_page_area = *page_area;
@@ -955,7 +951,12 @@ draw_one_page (EvView *view,
if (! gdk_rectangle_intersect (&real_page_area, expose_area, &overlap))
return;
+ ev_document_misc_paint_one_page (view->bin_window,
+ GTK_WIDGET (view),
+ page_area, border);
+
current_pixbuf = ev_pixbuf_cache_get_pixbuf (view->pixbuf_cache, page);
+
if (current_pixbuf == NULL)
scaled_image = NULL;
else if (width == gdk_pixbuf_get_width (current_pixbuf) &&
@@ -965,6 +966,7 @@ draw_one_page (EvView *view,
scaled_image = gdk_pixbuf_scale_simple (current_pixbuf,
width, height,
GDK_INTERP_NEAREST);
+
if (scaled_image) {
gdk_draw_pixbuf (view->bin_window,
GTK_WIDGET (view)->style->fg_gc[GTK_STATE_NORMAL],