+static void
+adjustment_changed_cb (GtkAdjustment *adjustment,
+ EvSidebarThumbnails *ev_sidebar_thumbnails)
+{
+ EvSidebarThumbnailsPrivate *priv;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ int page;
+ gboolean thumbnail_set;
+
+ priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails);
+
+ gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (priv->tree_view),
+ 1, 1, &path,
+ NULL, NULL, NULL);
+ if (!path)
+ return;
+
+ page = gtk_tree_path_get_indices (path)[0];
+ if (page == priv->current_page)
+ return;
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->list_store),
+ &iter, path);
+ gtk_tree_model_get (GTK_TREE_MODEL (priv->list_store), &iter,
+ COLUMN_THUMBNAIL_SET, &thumbnail_set,
+ -1);
+ if (! thumbnail_set) {
+ priv->current_page = page;
+ priv->current_page_iter = iter;
+
+ }
+}
+
+static void
+ev_sidebar_tree_selection_changed (GtkTreeSelection *selection,
+ EvSidebarThumbnails *ev_sidebar_thumbnails)
+{
+ EvSidebarThumbnailsPrivate *priv;
+ GtkWidget *window;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ int page;
+
+ priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails);
+
+ if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
+ return;
+
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->list_store),
+ &iter);
+
+ page = gtk_tree_path_get_indices (path)[0] + 1;
+
+ gtk_tree_path_free (path);
+
+ window = gtk_widget_get_ancestor (GTK_WIDGET (ev_sidebar_thumbnails),
+ EV_TYPE_WINDOW);
+ if (window && ev_document_get_page (priv->document) != page) {
+ ev_window_open_page (EV_WINDOW (window), page);
+ }
+}
+