From f0f15671240dd6e99f22e91386bd384246f2d4cd Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Wed, 11 May 2005 05:20:51 +0000 Subject: [PATCH] make page size calculation consistent and set it to (int)( width * scale + Wed May 11 01:18:29 2005 Jonathan Blandford * 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. --- ChangeLog | 10 ++++++++++ backend/ev-page-cache.c | 4 ++-- pdf/ev-poppler.cc | 4 ++-- shell/ev-view.c | 10 ++++++---- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index d40a013b..60e03110 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Wed May 11 01:18:29 2005 Jonathan Blandford + + * 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 * data/evince-password.glade: diff --git a/backend/ev-page-cache.c b/backend/ev-page-cache.c index c66a1a42..6302c42e 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 7b55b08c..32613558 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 6dfe1815..cf60e36b 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], -- 2.43.5