X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-sidebar-thumbnails.c;h=b602bb26ae7dfa2beaabd47d1504b89a0fe96e47;hb=09aa3e2b90d20966010f76a7e5459f4581ef3247;hp=3d13b5ef4b4051f1c61ee66c0b197e0deefbec27;hpb=b60e6ae1e490c08530322f82af31f34dffb8110f;p=evince.git
diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c
index 3d13b5ef..b602bb26 100644
--- a/shell/ev-sidebar-thumbnails.c
+++ b/shell/ev-sidebar-thumbnails.c
@@ -35,7 +35,8 @@
#include "ev-window.h"
#include "ev-utils.h"
-#define THUMBNAIL_WIDTH 75
+#define THUMBNAIL_WIDTH 100
+
/* Amount of time we devote to each iteration of the idle, in microseconds */
#define IDLE_WORK_LENGTH 5000
@@ -57,8 +58,6 @@ enum {
NUM_COLUMNS
};
-static GtkVBoxClass *parent_class;
-
G_DEFINE_TYPE (EvSidebarThumbnails, ev_sidebar_thumbnails, GTK_TYPE_VBOX);
#define EV_SIDEBAR_THUMBNAILS_GET_PRIVATE(object) \
@@ -76,7 +75,7 @@ ev_sidebar_thumbnails_destroy (GtkObject *object)
priv->idle_id = 0;
}
- GTK_OBJECT_CLASS (parent_class)->destroy (object);
+ GTK_OBJECT_CLASS (ev_sidebar_thumbnails_parent_class)->destroy (object);
}
static void
@@ -88,8 +87,6 @@ ev_sidebar_thumbnails_class_init (EvSidebarThumbnailsClass *ev_sidebar_thumbnail
g_object_class = G_OBJECT_CLASS (ev_sidebar_thumbnails_class);
gtk_object_class = GTK_OBJECT_CLASS (ev_sidebar_thumbnails_class);
- parent_class = g_type_class_peek_parent (ev_sidebar_thumbnails_class);
-
gtk_object_class->destroy = ev_sidebar_thumbnails_destroy;
g_type_class_add_private (g_object_class, sizeof (EvSidebarThumbnailsPrivate));
@@ -226,12 +223,14 @@ do_one_iteration (EvSidebarThumbnails *ev_sidebar_thumbnails)
COLUMN_THUMBNAIL_SET, &thumbnail_set,
-1);
if (!thumbnail_set) {
- pixbuf = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (priv->document),
- priv->current_page, THUMBNAIL_WIDTH);
+ pixbuf = ev_document_thumbnails_get_thumbnail
+ (EV_DOCUMENT_THUMBNAILS (priv->document),
+ priv->current_page, THUMBNAIL_WIDTH, TRUE);
gtk_list_store_set (priv->list_store,
&(priv->current_page_iter),
COLUMN_PIXBUF, pixbuf,
+ COLUMN_THUMBNAIL_SET, TRUE,
-1);
g_object_unref (pixbuf);
@@ -316,6 +315,10 @@ ev_sidebar_thumbnails_select_page (EvSidebarThumbnails *sidebar,
GtkTreePath *path;
GtkTreeSelection *selection;
+ /* if the EvSidebar's document can't provide thumbnails */
+ if (sidebar->priv->document == NULL)
+ return;
+
path = gtk_tree_path_new_from_indices (page - 1, -1);
selection = gtk_tree_view_get_selection
(GTK_TREE_VIEW (sidebar->priv->tree_view));
@@ -356,11 +359,13 @@ ev_sidebar_thumbnails_set_document (EvSidebarThumbnails *sidebar_thumbnails,
/* We get the dimensions of the first doc so that we can make a blank
* icon. */
ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (priv->document),
- 0, THUMBNAIL_WIDTH, &width, &height);
+ 1, THUMBNAIL_WIDTH, &width, &height);
loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL);
- for (i = 0; i < n_pages; i++) {
- page = g_strdup_printf ("%d", i + 1);
+ gtk_list_store_clear (priv->list_store);
+
+ for (i = 1; i <= n_pages; i++) {
+ page = g_strdup_printf ("%d", i);
gtk_list_store_append (priv->list_store, &iter);
gtk_list_store_set (priv->list_store, &iter,
COLUMN_PAGE_STRING, page,