@@ -102,8 +102,9 @@ class PDFRenderingQueue {
102
102
* @param {Object } visible
103
103
* @param {Array } views
104
104
* @param {boolean } scrolledDown
105
+ * @param {boolean } [preRenderExtra]
105
106
*/
106
- getHighestPriority ( visible , views , scrolledDown ) {
107
+ getHighestPriority ( visible , views , scrolledDown , preRenderExtra = false ) {
107
108
/**
108
109
* The state has changed. Figure out which page has the highest priority to
109
110
* render next (if any).
@@ -126,20 +127,20 @@ class PDFRenderingQueue {
126
127
}
127
128
}
128
129
129
- // All the visible views have rendered; try to render next/previous pages .
130
- if ( scrolledDown ) {
131
- const nextPageIndex = visible . last . id ;
132
- // IDs start at 1, so no need to add 1.
133
- if ( views [ nextPageIndex ] && ! this . isViewFinished ( views [ nextPageIndex ] ) ) {
134
- return views [ nextPageIndex ] ;
135
- }
136
- } else {
137
- const previousPageIndex = visible . first . id - 2 ;
138
- if (
139
- views [ previousPageIndex ] &&
140
- ! this . isViewFinished ( views [ previousPageIndex ] )
141
- ) {
142
- return views [ previousPageIndex ] ;
130
+ // All the visible views have rendered; try to render next/previous page .
131
+ // (IDs start at 1, so no need to add 1 when ` scrolledDown === true`.)
132
+ let preRenderIndex = scrolledDown ? visible . last . id : visible . first . id - 2 ;
133
+ let preRenderView = views [ preRenderIndex ] ;
134
+
135
+ if ( preRenderView && ! this . isViewFinished ( preRenderView ) ) {
136
+ return preRenderView ;
137
+ }
138
+ if ( preRenderExtra ) {
139
+ preRenderIndex += scrolledDown ? 1 : - 1 ;
140
+ preRenderView = views [ preRenderIndex ] ;
141
+
142
+ if ( preRenderView && ! this . isViewFinished ( preRenderView ) ) {
143
+ return preRenderView ;
143
144
}
144
145
}
145
146
// Everything that needs to be rendered has been.
0 commit comments