else
view->end_page = view->start_page;
} else {
- if (view->current_page - 1 < 0)
+ if (view->current_page < 1)
view->start_page = view->current_page;
else
view->start_page = view->current_page - 1;
current_page = ev_page_cache_get_current_page (view->page_cache);
if (current_page < view->start_page || current_page > view->end_page) {
+ view->current_page = view->start_page;
ev_page_cache_set_current_page (view->page_cache, view->start_page);
}
GdkRectangle overlap;
GdkRectangle real_page_area;
EvViewSelection *selection;
+ gint current_page;
g_assert (view->document);
+
if (! gdk_rectangle_intersect (page_area, expose_area, &overlap))
return;
-
+
+ current_page = ev_page_cache_get_current_page (view->page_cache);
selection = find_selection_for_page (view, page);
ev_page_cache_get_size (view->page_cache,
page, view->rotation,
ev_document_misc_paint_one_page (GTK_WIDGET(view)->window,
GTK_WIDGET (view),
- page_area, border);
+ page_area, border,
+ page == current_page);
if (gdk_rectangle_intersect (&real_page_area, expose_area, &overlap)) {
GdkPixbuf *selection_pixbuf = NULL;
EvView *view)
{
if (view->current_page != new_page) {
-
view->current_page = new_page;
view->pending_scroll = SCROLL_TO_PAGE_POSITION;
gtk_widget_queue_resize (GTK_WIDGET (view));
+ } else {
+ gtk_widget_queue_draw (GTK_WIDGET (view));
+ }
- if (EV_IS_DOCUMENT_FIND (view->document)) {
- view->find_result = 0;
- update_find_status_message (view, TRUE);
- }
+ if (EV_IS_DOCUMENT_FIND (view->document)) {
+ view->find_result = 0;
+ update_find_status_message (view, TRUE);
}
}
g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
page = ev_page_cache_get_current_page (view->page_cache);
- page = ev_view_get_dual_page (view) ? page + 2 : page + 1;
+
+ if (view->dual_page && !view->presentation)
+ page = page + 2;
+ else
+ page = page + 1;
if (page < ev_page_cache_get_n_pages (view->page_cache)) {
ev_page_cache_set_current_page (view->page_cache, page);
g_return_val_if_fail (EV_IS_VIEW (view), FALSE);
page = ev_page_cache_get_current_page (view->page_cache);
- page = ev_view_get_dual_page (view) ? page - 2 : page - 1;
+
+ if (view->dual_page && !view->presentation)
+ page = page - 2;
+ else
+ page = page - 1;
if (page >= 0) {
ev_page_cache_set_current_page (view->page_cache, page);