diff options
Diffstat (limited to 'libview')
-rw-r--r-- | libview/ev-pixbuf-cache.c | 2 | ||||
-rw-r--r-- | libview/ev-view.c | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c index 3c4fd31b..409b9c39 100644 --- a/libview/ev-pixbuf-cache.c +++ b/libview/ev-pixbuf-cache.c @@ -90,7 +90,7 @@ static gboolean new_selection_surface_needed(EvPixbufCache *pixbuf_cac #define PAGE_CACHE_LEN(pixbuf_cache) \ (pixbuf_cache->start_page>=0?((pixbuf_cache->end_page - pixbuf_cache->start_page) + 1):0) -#define MAX_PRELOADED_PAGES 3 +#define MAX_PRELOADED_PAGES 20 G_DEFINE_TYPE (EvPixbufCache, ev_pixbuf_cache, G_TYPE_OBJECT) diff --git a/libview/ev-view.c b/libview/ev-view.c index af0c3433..b360b22d 100644 --- a/libview/ev-view.c +++ b/libview/ev-view.c @@ -732,12 +732,13 @@ view_update_range_and_current_page (EvView *view) } } + #define PAGE_CACHE_NUMBER 10 ev_page_cache_set_page_range (view->page_cache, - view->start_page, - view->end_page); + MAX(view->start_page - PAGE_CACHE_NUMBER, 0), + MIN(view->end_page + PAGE_CACHE_NUMBER, ev_document_get_n_pages (view->document) - 1)); ev_pixbuf_cache_set_page_range (view->pixbuf_cache, - view->start_page, - view->end_page, + MAX(view->start_page - PAGE_CACHE_NUMBER, 0), + MIN(view->end_page + PAGE_CACHE_NUMBER, ev_document_get_n_pages (view->document) - 1), view->selection_info.selections); if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page)) |