if (! GTK_WIDGET_REALIZED (priv->tree_view))
return;
+#if GTK_CHECK_VERSION (2, 11, 3)
+ gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW (priv->tree_view),
+ 0, (int) priv->vadjustment->value,
+ NULL, &wy1);
+ gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW (priv->tree_view),
+ 0, (int) (priv->vadjustment->value + priv->vadjustment->page_size),
+ NULL, &wy2);
+#else
gtk_tree_view_tree_to_widget_coords (GTK_TREE_VIEW (priv->tree_view),
0, (int) priv->vadjustment->value,
NULL, &wy1);
gtk_tree_view_tree_to_widget_coords (GTK_TREE_VIEW (priv->tree_view),
0, (int) (priv->vadjustment->value + priv->vadjustment->page_size),
NULL, &wy2);
+#endif /* GTK_CHECK_VERSION (2, 11, 3) */
+
gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (priv->tree_view),
1, wy1 + 1, &path,
NULL, NULL, NULL);
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);
EV_TYPE_JOB_THUMBNAIL);
priv->swindow = gtk_scrolled_window_new (NULL, NULL);
+
+ /* We actually don't want GTK_POLICY_AUTOMATIC for horizontal scrollbar here
+ * it's just a workaround for bug #449462
+ */
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->swindow),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->swindow),
GTK_SHADOW_IN);
priv->vadjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->swindow));