X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-view.c;h=d0950936b434ee7da14b65c2857fbc83a92c5739;hb=5cea5eb0365ac715463c4d6fc893ed4154821e42;hp=dd8723dc8e9fcbb3f99865ad0a67dc423cc1a96c;hpb=c2822868b202e30f2bcf8d4141824594f6be0d99;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index dd8723dc..d0950936 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -22,6 +22,7 @@ #include "ev-marshal.h" #include "ev-view.h" +#include "ev-document-find.h" #define EV_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_VIEW, EvViewClass)) #define EV_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_VIEW)) @@ -294,32 +295,36 @@ expose_bin_window (GtkWidget *widget, { EvView *view = EV_VIEW (widget); int i; + int current_page; const EvFindResult *results; + + if (view->document == NULL) + return; - if (view->document) - ev_document_render (view->document, - event->area.x, event->area.y, - event->area.width, event->area.height); + ev_document_render (view->document, + event->area.x, event->area.y, + event->area.width, event->area.height); results = (EvFindResult*) view->find_results->data; + current_page = ev_document_get_page (view->document); i = 0; while (i < view->find_results->len) { #if 0 - g_printerr ("highlighting result %d at %d,%d %dx%d\n", - i, + g_printerr ("highlighting result %d page %d at %d,%d %dx%d\n", + i, results[i].page_num, results[i].highlight_area.x, results[i].highlight_area.y, results[i].highlight_area.width, results[i].highlight_area.height); -#endif - // if (results[i].page_num == current_page) FIXME - gdk_draw_rectangle (view->bin_window, - widget->style->base_gc[GTK_STATE_SELECTED], - FALSE, - results[i].highlight_area.x, - results[i].highlight_area.y, - results[i].highlight_area.width, - results[i].highlight_area.height); +#endif + if (results[i].page_num == current_page) + gdk_draw_rectangle (view->bin_window, + widget->style->base_gc[GTK_STATE_SELECTED], + FALSE, + results[i].highlight_area.x, + results[i].highlight_area.y, + results[i].highlight_area.width, + results[i].highlight_area.height); ++i; } } @@ -484,6 +489,20 @@ found_results_callback (EvDocument *document, if (n_results > 0) g_array_append_vals (view->find_results, results, n_results); + +#if 0 + { + int i; + + g_printerr ("%d results: ", n_results); + i = 0; + while (i < n_results) { + g_printerr ("%d ", results[i].page_num); + ++i; + } + g_printerr ("\n"); + } +#endif gtk_widget_queue_draw (GTK_WIDGET (view)); }