]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view.c
Updated Bulgarian translation by Alexander Shopov <ash@contact.bg>
[evince.git] / shell / ev-view.c
index 3c2090dbbe0398a4912bc69e27b5edf52d7041f3..757194d7800814c2f8adadf3d918145c5e48f829 100644 (file)
@@ -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) {