From 4c40712522dc5ccac45502973d9a694f2998c953 Mon Sep 17 00:00:00 2001 From: Oleguer Llopart Date: Thu, 26 Sep 2024 11:23:33 +0200 Subject: [PATCH] Fix: Some errors --- scripts/dom.js | 2 +- scripts/reading.js | 2 +- scripts/reading/render.js | 32 ++++++++++++++++++++------------ 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/scripts/dom.js b/scripts/dom.js index ae842a11a..31a12f467 100644 --- a/scripts/dom.js +++ b/scripts/dom.js @@ -1234,7 +1234,7 @@ function calculateVisibleItems(view, scrollTop = false) if(rect.width == 0 || rect.height == 0) rect = {width: window.innerWidth, height: window.innerHeight}; - scrollTop = scrollTop || element.scrollTop; + scrollTop = scrollTop || 0; // element.scrollTop; let start = 0; let end = 100; diff --git a/scripts/reading.js b/scripts/reading.js index 61c441cc8..64653a33a 100644 --- a/scripts/reading.js +++ b/scripts/reading.js @@ -896,7 +896,7 @@ function goToImageCL(index, animation = true, fromScroll = false, fromPageRange if(!fromPageRange) { - render.focusIndex(index); + render.focusIndex(index, readingDoublePage()); filters.focusIndex(index); } diff --git a/scripts/reading/render.js b/scripts/reading/render.js index 1a8811db1..f277ba161 100644 --- a/scripts/reading/render.js +++ b/scripts/reading/render.js @@ -190,7 +190,7 @@ async function setEbookConfigChanged(ebookConfig) ebook.updateConfig(ebookConfig); } -async function focusIndex(index) +async function focusIndex(index, doublePage = false) { if(!file && !renderImages) return; @@ -200,7 +200,7 @@ async function focusIndex(index) currentIndex = index; - setRenderQueue(maxPrev, maxNext); + setRenderQueue(maxPrev, maxNext, false, false, (doublePage ? 2 : false)); sendToQueueST = setTimeout(function(){ @@ -221,12 +221,15 @@ function revokeAllObjectURL() renderedObjectsURLCache = {}; } -async function setRenderQueue(prev = 1, next = 1, scale = false, magnifyingGlass = false) +async function setRenderQueue(prev = 1, next = 1, scale = false, magnifyingGlass = false, prioritizeNext = false) { //console.time('readingRender'); let _rendered = magnifyingGlass ? renderedMagnifyingGlass : rendered; + if(prioritizeNext) + prev = prev + prioritizeNext; + for(let i = 0, len = Math.max(next, prev); i < len; i++) { let nextI = currentIndex + i; @@ -250,19 +253,24 @@ async function setRenderQueue(prev = 1, next = 1, scale = false, magnifyingGlass } // Prev pages - if(i < prev && nextI != prevI && (!_rendered[prevI] || (scale !== false && _rendered[prevI] !== scale)) && imagesData[prevI]) + if(!prioritizeNext || i > prioritizeNext) { - if(renderEbook) // Render ebook instantly - { - render(prevI, scale, magnifyingGlass); - } - else + if(prioritizeNext) prevI += prioritizeNext; + + if(i < prev && nextI != prevI && (!_rendered[prevI] || (scale !== false && _rendered[prevI] !== scale)) && imagesData[prevI]) { - queue.add('readingRender', async function() { + if(renderEbook) // Render ebook instantly + { + render(prevI, scale, magnifyingGlass); + } + else + { + queue.add('readingRender', async function() { - return render(prevI, scale, magnifyingGlass); + return render(prevI, scale, magnifyingGlass); - }); + }); + } } } }