+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:
}
if (width)
- *width = (*width) * scale;
+ *width = (int) ((*width) * scale + 0.5);
if (width)
- *height = (*height) * scale;
+ *height = (int) ((*height) * scale + 0.5);
}
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,
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;
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) &&
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],