X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-view.c;h=6417a43c6f949032c9c3e0bc64f4adc812a843e4;hb=43f607bda8eef3648f018e433647172603ea1a7f;hp=973da901eb5be6aaaa2f7194e47873086be2d3e3;hpb=77d7df795c3d4f772a1b2f584e7b1b78747bf416;p=evince.git diff --git a/libview/ev-view.c b/libview/ev-view.c index 973da901..6417a43c 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -609,8 +609,6 @@ view_set_adjustment_values (EvView *view, static void view_update_range_and_current_page (EvView *view) { - gint current_page; - gint best_current_page = -1; gint start = view->start_page; gint end = view->end_page; @@ -623,6 +621,7 @@ view_update_range_and_current_page (EvView *view) GtkBorder border; gboolean found = FALSE; gint area_max = -1, area; + gint best_current_page = -1; int i; if (!(view->vadjustment && view->hadjustment)) @@ -657,12 +656,20 @@ view_update_range_and_current_page (EvView *view) } } + if (view->pending_scroll == SCROLL_TO_KEEP_POSITION) { + best_current_page = MAX (best_current_page, view->start_page); + + if (view->current_page != best_current_page) { + view->current_page = best_current_page; + ev_document_model_set_page (view->model, best_current_page); + } + } } else if (view->dual_page) { if (view->current_page % 2 == get_dual_even_left (view)) { view->start_page = view->current_page; if (view->current_page + 1 < ev_document_get_n_pages (view->document)) view->end_page = view->start_page + 1; - else + else view->end_page = view->start_page; } else { if (view->current_page < 1) @@ -676,14 +683,6 @@ view_update_range_and_current_page (EvView *view) view->end_page = view->current_page; } - best_current_page = MAX (best_current_page, view->start_page); - current_page = ev_document_model_get_page (view->model); - - if ((current_page != best_current_page) && (view->pending_scroll == SCROLL_TO_KEEP_POSITION)) { - view->current_page = best_current_page; - ev_document_model_set_page (view->model, best_current_page); - } - if (start != view->start_page || end != view->end_page) { gint i; @@ -702,6 +701,9 @@ view_update_range_and_current_page (EvView *view) view->rotation, view->scale, view->selection_info.selections); + + if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page)) + gtk_widget_queue_draw (GTK_WIDGET (view)); } static void