X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-view.c;h=cd20a8c9154e43a83f06511733a35eb342f89a4a;hb=5ecf2bfd3311cfb403a6a6446ee6e10f6a410413;hp=d496a68eff824484928ec0260e5a1cc085af00d1;hpb=c6a200897a5fa91ed6585d1bc910234fdd8015a1;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index d496a68e..cd20a8c9 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -1517,7 +1517,6 @@ handle_link_over_xy (EvView *view, gint x, gint y) view->cursor == EV_VIEW_CURSOR_IBEAM) ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL); } - return; } /*** Images ***/ @@ -2857,7 +2856,7 @@ draw_loading_text (EvView *view, ev_document_fc_mutex_unlock (); } - width = cairo_image_surface_get_width (view->loading_text) / 2; + width = (page_area->width - cairo_image_surface_get_width (view->loading_text)) / 2; height = (page_area->height - cairo_image_surface_get_height (view->loading_text)) / 2; cr = gdk_cairo_create (GTK_WIDGET (view)->window); @@ -3406,10 +3405,17 @@ page_changed_cb (EvPageCache *page_cache, EvView *view) { if (view->current_page != new_page) { + gint x, y; + view->current_page = new_page; view->pending_scroll = SCROLL_TO_PAGE_POSITION; + if (view->presentation) ev_view_presentation_transition_start (view); + + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + handle_link_over_xy (view, x, y); + gtk_widget_queue_resize (GTK_WIDGET (view)); } else { gtk_widget_queue_draw (GTK_WIDGET (view)); @@ -3421,10 +3427,12 @@ page_changed_cb (EvPageCache *page_cache, } } -static void on_adjustment_value_changed (GtkAdjustment *adjustment, - EvView *view) +static void +on_adjustment_value_changed (GtkAdjustment *adjustment, + EvView *view) { int dx = 0, dy = 0; + gint x, y; if (! GTK_WIDGET_REALIZED (view)) return; @@ -3443,13 +3451,14 @@ static void on_adjustment_value_changed (GtkAdjustment *adjustment, view->scroll_y = 0; } - if (view->pending_resize) gtk_widget_queue_draw (GTK_WIDGET (view)); else gdk_window_scroll (GTK_WIDGET (view)->window, dx, dy); - + gtk_widget_get_pointer (GTK_WIDGET (view), &x, &y); + handle_link_over_xy (view, x, y); + if (view->document) view_update_range_and_current_page (view); } @@ -4875,6 +4884,13 @@ ev_view_next_page (EvView *view) if (!view->page_cache) return FALSE; + if (view->presentation && + (view->presentation_state == EV_PRESENTATION_BLACK || + view->presentation_state == EV_PRESENTATION_WHITE)) { + ev_view_reset_presentation_state (view); + return FALSE; + } + ev_view_presentation_transition_stop (view); ev_view_reset_presentation_state (view); @@ -4917,6 +4933,13 @@ ev_view_previous_page (EvView *view) return TRUE; } + if (view->presentation && + (view->presentation_state == EV_PRESENTATION_BLACK || + view->presentation_state == EV_PRESENTATION_WHITE)) { + ev_view_reset_presentation_state (view); + return FALSE; + } + ev_view_reset_presentation_state (view); page = ev_page_cache_get_current_page (view->page_cache);