]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-view.c
[totem-screensaver] Adapt to GDBus API change
[evince.git] / libview / ev-view.c
index 55c31ab355df932456859dfa971e5c581f8a63e7..ac14b699c7404724266e220a7515b2fd4ac20775 100644 (file)
@@ -730,8 +730,6 @@ view_update_range_and_current_page (EvView *view)
        ev_pixbuf_cache_set_page_range (view->pixbuf_cache,
                                        view->start_page,
                                        view->end_page,
-                                       view->rotation,
-                                       view->scale,
                                        view->selection_info.selections);
 
        if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page))
@@ -3473,7 +3471,7 @@ ev_view_drag_motion (GtkWidget      *widget,
        if (gtk_drag_get_source_widget (context) == widget)
                gdk_drag_status (context, 0, time);
        else
-               gdk_drag_status (context, context->suggested_action, time);
+               gdk_drag_status (context, gdk_drag_context_get_suggested_action (context), time);
        
        return TRUE;
 }
@@ -4554,7 +4552,7 @@ setup_caches (EvView *view)
        gboolean inverted_colors;
 
        view->height_to_page_cache = ev_view_get_height_to_page_cache (view);
-       view->pixbuf_cache = ev_pixbuf_cache_new (GTK_WIDGET (view), view->document);
+       view->pixbuf_cache = ev_pixbuf_cache_new (GTK_WIDGET (view), view->model, view->pixbuf_cache_size);
        view->page_cache = ev_page_cache_new (view->document);
        inverted_colors = ev_document_model_get_inverted_colors (view->model);
        ev_pixbuf_cache_set_inverted_colors (view->pixbuf_cache, inverted_colors);
@@ -4575,10 +4573,37 @@ clear_caches (EvView *view)
        }
 }
 
+/**
+ * ev_view_set_page_cache_size:
+ * @view:
+ * @cache_size:
+ *
+ * Sets the maximum size in bytes that will be used to cache
+ * rendered pages. Use 0 to disable caching rendered pages.
+ *
+ * Note that this limit doesn't affect the current visible page range,
+ * which will always be rendered. In order to limit the total memory used
+ * you have to use ev_document_model_set_max_scale() too.
+ *
+ */
+void
+ev_view_set_page_cache_size (EvView *view,
+                            gsize   cache_size)
+{
+       if (view->pixbuf_cache_size == cache_size)
+               return;
+
+       view->pixbuf_cache_size = cache_size;
+       if (view->pixbuf_cache)
+               ev_pixbuf_cache_set_max_size (view->pixbuf_cache, cache_size);
+}
+
 void
 ev_view_set_loading (EvView      *view,
                     gboolean      loading)
 {
+       if (view->loading && !loading)
+               hide_loading_window (view);
        view->loading = loading;
        gtk_widget_queue_draw (GTK_WIDGET (view));
 }