X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-sidebar-thumbnails.c;h=26760a968115b8a0c456ad3e57cb7c69d2dab88b;hb=21f638ab8e3ddb81ce7979939defcdb7f49ad376;hp=325c1633ee147351ca95b2bf9b8b6286f47a7ebe;hpb=1d6150237848b4c1fede94ce23baa4fd8870fd93;p=evince.git diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c index 325c1633..26760a96 100644 --- a/shell/ev-sidebar-thumbnails.c +++ b/shell/ev-sidebar-thumbnails.c @@ -354,14 +354,11 @@ adjustment_changed_cb (EvSidebarThumbnails *sidebar_thumbnails) return; } - if (path == NULL) - path = gtk_tree_path_new_first (); - if (path2 == NULL) - path2 = gtk_tree_path_new_from_indices (priv->n_pages, - -1); - update_visible_range (sidebar_thumbnails, - gtk_tree_path_get_indices (path)[0], - gtk_tree_path_get_indices (path2)[0]); + if (path && path2) { + update_visible_range (sidebar_thumbnails, + gtk_tree_path_get_indices (path)[0], + gtk_tree_path_get_indices (path2)[0]); + } gtk_tree_path_free (path); gtk_tree_path_free (path2); @@ -396,26 +393,21 @@ ev_sidebar_thumbnails_fill_model (EvSidebarThumbnails *sidebar_thumbnails) static void ev_sidebar_thumbnails_set_loading_icon (EvSidebarThumbnails *sidebar_thumbnails) { - gint width = THUMBNAIL_WIDTH; - gint height = THUMBNAIL_WIDTH; - if (sidebar_thumbnails->priv->loading_icon) g_object_unref (sidebar_thumbnails->priv->loading_icon); if (sidebar_thumbnails->priv->document) { - EvRenderContext *rc; - - rc = ev_render_context_new (sidebar_thumbnails->priv->rotation, 0, - get_scale_for_page (sidebar_thumbnails, 0)); + gint width = THUMBNAIL_WIDTH; + gint height; + gint page_width, page_height; - /* We get the dimensions of the first doc so that we can make a blank + /* We get the dimensions of the first page so that we can make a blank * icon. */ - ev_document_doc_mutex_lock (); - ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (sidebar_thumbnails->priv->document), - rc, &width, &height); - ev_document_doc_mutex_unlock (); - - g_object_unref (rc); + ev_page_cache_get_size (sidebar_thumbnails->priv->page_cache, 0, + sidebar_thumbnails->priv->rotation, + 1.0, &page_width, &page_height); + + height = (gint) (page_height * ((gdouble)width / page_width)); sidebar_thumbnails->priv->loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL); @@ -679,6 +671,9 @@ ev_sidebar_thumbnails_set_document (EvSidebarPage *sidebar_page, g_signal_connect (priv->page_cache, "page-changed", G_CALLBACK (page_changed_cb), sidebar_thumbnails); sidebar_thumbnails->priv->start_page = 0; sidebar_thumbnails->priv->end_page = 0; + page_changed_cb (priv->page_cache, + ev_page_cache_get_current_page (priv->page_cache), + sidebar_thumbnails); adjustment_changed_cb (sidebar_thumbnails); }