summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanxiongchao <[email protected]>2017-02-20 16:33:22 +0800
committernanxiongchao <[email protected]>2017-02-20 16:33:22 +0800
commit00fad2c0d0fcdade570a08f046e85a4558f1fc0c (patch)
tree364b764903a6103a9468d4355a371d7939f693bf
parent4b264c661a53e847b958cf6c8913c88a8cc707d5 (diff)
downloadatril-00fad2c0d0fcdade570a08f046e85a4558f1fc0c.tar.bz2
atril-00fad2c0d0fcdade570a08f046e85a4558f1fc0c.tar.xz
First page should not reloaded
For the displayed page, do not reload every time, should be displayed immediately Tested successfully on Loongson 3A2000 with fedora25(mips64el distribution).
-rw-r--r--libview/ev-pixbuf-cache.c2
-rw-r--r--libview/ev-view.c9
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))