diff options
Diffstat (limited to 'libview/ev-view.c')
-rw-r--r-- | libview/ev-view.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/libview/ev-view.c b/libview/ev-view.c index 7cc0f79..c26aabc 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -4554,7 +4554,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,6 +4575,31 @@ 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) |