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=757194d7800814c2f8adadf3d918145c5e48f829;hb=2ed9b1cb6b19debdaafdde18f901d9ef18269240;hp=3c2090dbbe0398a4912bc69e27b5edf52d7041f3;hpb=d18bf1f949a0d4fb15b3bbd6daa6b8a59ebdc3f2;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index 3c2090db..757194d7 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -1080,22 +1080,20 @@ static void goto_fitr_dest (EvView *view, EvLinkDest *dest) { EvPoint doc_point; - int page; double zoom; zoom = zoom_for_size_best_fit (ev_link_dest_get_right (dest) - ev_link_dest_get_left (dest), - ev_link_dest_get_top (dest) - ev_link_dest_get_bottom (dest), + ev_link_dest_get_bottom (dest) - ev_link_dest_get_top (dest), ev_view_get_width (view), ev_view_get_height (view), 0, 0); ev_view_set_sizing_mode (view, EV_SIZING_FREE); ev_view_set_zoom (view, zoom, FALSE); - page = ev_link_dest_get_page (dest); doc_point.x = ev_link_dest_get_left (dest); doc_point.y = ev_link_dest_get_top (dest); - view->current_page = page; + view->current_page = ev_link_dest_get_page (dest); view->pending_point = doc_point; view->pending_scroll = SCROLL_TO_PAGE_POSITION; @@ -1140,13 +1138,13 @@ goto_fith_dest (EvView *view, EvLinkDest *dest) ev_page_cache_get_size (view->page_cache, page, 0, 1.0, &doc_width, &doc_height); doc_point.x = 0; - doc_point.y = doc_height - ev_link_dest_get_top (dest); + doc_point.y = ev_link_dest_get_top (dest); zoom = zoom_for_size_fit_width (doc_width, ev_link_dest_get_top (dest), ev_view_get_width (view), ev_view_get_height (view), 0); - ev_view_set_sizing_mode (view, EV_SIZING_FREE); + ev_view_set_sizing_mode (view, EV_SIZING_FIT_WIDTH); ev_view_set_zoom (view, zoom, FALSE); view->current_page = page; @@ -1169,7 +1167,7 @@ goto_fit_dest (EvView *view, EvLinkDest *dest) zoom = zoom_for_size_best_fit (doc_width, doc_height, ev_view_get_width (view), ev_view_get_height (view), 0, 0); - ev_view_set_sizing_mode (view, EV_SIZING_FREE); + ev_view_set_sizing_mode (view, EV_SIZING_BEST_FIT); ev_view_set_zoom (view, zoom, FALSE); view->current_page = page; @@ -1182,20 +1180,19 @@ static void goto_xyz_dest (EvView *view, EvLinkDest *dest) { EvPoint doc_point; - int height, page; + gint page; double zoom; zoom = ev_link_dest_get_zoom (dest); page = ev_link_dest_get_page (dest); - ev_page_cache_get_size (view->page_cache, page, 0, 1.0, NULL, &height); - if (zoom != 0) { + if (zoom > 1) { ev_view_set_sizing_mode (view, EV_SIZING_FREE); ev_view_set_zoom (view, zoom, FALSE); } doc_point.x = ev_link_dest_get_left (dest); - doc_point.y = height - ev_link_dest_get_top (dest); + doc_point.y = ev_link_dest_get_top (dest); view->current_page = page; view->pending_point = doc_point; @@ -2280,7 +2277,7 @@ draw_one_page (EvView *view, gint current_page; g_assert (view->document); - + if (! gdk_rectangle_intersect (page_area, expose_area, &overlap)) return; @@ -2409,6 +2406,7 @@ ev_view_destroy (GtkObject *object) if (view->link_tooltip) { gtk_widget_destroy (view->link_tooltip); + view->link_tooltip = NULL; } if (view->selection_scroll_id) {