@@ -102,8 +102,9 @@ class PDFRenderingQueue {
102102 * @param {Object } visible
103103 * @param {Array } views
104104 * @param {boolean } scrolledDown
105+ * @param {boolean } [preRenderExtra]
105106 */
106- getHighestPriority ( visible , views , scrolledDown ) {
107+ getHighestPriority ( visible , views , scrolledDown , preRenderExtra = false ) {
107108 /**
108109 * The state has changed. Figure out which page has the highest priority to
109110 * render next (if any).
@@ -126,20 +127,20 @@ class PDFRenderingQueue {
126127 }
127128 }
128129
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 ;
143144 }
144145 }
145146 // Everything that needs to be rendered has been.
0 commit comments