]> www.fi.muni.cz Git - evince.git/commitdiff
Don't show highlight rects if page can't be showed. Fix for the bug
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Sat, 27 May 2006 09:38:42 +0000 (09:38 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Sat, 27 May 2006 09:38:42 +0000 (09:38 +0000)
2006-05-27  Ricardo Markiewicz  <rmarkie@fi.uba.ar>

* shell/ev-view.c: (ev_view_expose_event), (draw_one_page):

Don't show highlight rects if page can't be showed. Fix for
the bug #342076

ChangeLog
shell/ev-view.c

index 408a18c2f0b6a437d51a5d29039964340bf996c1..47e86c0b552f3298f329b0189cbda9e8d10502fe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-05-27  Ricardo Markiewicz  <rmarkie@fi.uba.ar>
+
+       * shell/ev-view.c: (ev_view_expose_event), (draw_one_page):
+       
+       Don't show highlight rects if page can't be showed. Fix for 
+       the bug #342076
+
 2006-05-27  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
 
        * shell/ev-window.c: (setup_sidebar_from_metadata),
index 524a8d0b0a418c2b25b4144ef285d6d1422bc104..e9a74d056ab81ad53ef00b5b512bf888c74417ac 100644 (file)
@@ -206,7 +206,8 @@ static void       draw_one_page                              (EvView
                                                              gint                page,
                                                              GdkRectangle       *page_area,
                                                              GtkBorder          *border,
-                                                             GdkRectangle       *expose_area);
+                                                             GdkRectangle       *expose_area,
+                                                             gboolean           *page_ready);
 static void      draw_loading_text                          (EvView             *view,
                                                              GdkRectangle       *page_area,
                                                              GdkRectangle       *expose_area);
@@ -1761,6 +1762,7 @@ ev_view_expose_event (GtkWidget      *widget,
        for (i = view->start_page; i <= view->end_page; i++) {
                GdkRectangle page_area;
                GtkBorder border;
+               gboolean page_ready;
 
                if (!get_page_extents (view, i, &page_area, &border))
                        continue;
@@ -1768,9 +1770,9 @@ ev_view_expose_event (GtkWidget      *widget,
                page_area.x -= view->scroll_x;
                page_area.y -= view->scroll_y;
 
-               draw_one_page (view, i, &page_area, &border, &(event->area));
+               draw_one_page (view, i, &page_area, &border, &(event->area), &page_ready);
 
-               if (EV_IS_DOCUMENT_FIND (view->document))
+               if (page_ready && EV_IS_DOCUMENT_FIND (view->document))
                        highlight_find_results (view, i);
        }
 
@@ -2264,7 +2266,8 @@ draw_one_page (EvView          *view,
               gint             page,
               GdkRectangle    *page_area,
               GtkBorder       *border,
-              GdkRectangle    *expose_area)
+              GdkRectangle    *expose_area,
+              gboolean        *page_ready)
 {
        gint width, height;
        GdkPixbuf *current_pixbuf;
@@ -2346,10 +2349,12 @@ draw_one_page (EvView          *view,
                                         GDK_RGB_DITHER_NORMAL,
                                         0, 0);
                        g_object_unref (scaled_image);
+                       *page_ready = TRUE;
                } else {
                        draw_loading_text (view,
                                           &real_page_area,
                                           expose_area);
+                       *page_ready = FALSE;
                }
 
                if (scaled_selection) {