1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Desktop: Fixes #1867: Fix scrolling issue when clicking on internal link

This commit is contained in:
Laurent Cozic 2019-10-28 18:56:38 +00:00
parent 19f9c4f540
commit 30969f8ab6

View File

@ -161,7 +161,7 @@
} }
} }
let ignoreNextScrollEvent = false; let lastScrollEventTime = 0;
ipc.setPercentScroll = (event) => { ipc.setPercentScroll = (event) => {
const percent = event.percent; const percent = event.percent;
@ -170,7 +170,7 @@
checkScrollIID_ = null; checkScrollIID_ = null;
} }
ignoreNextScrollEvent = true; lastScrollEventTime = Date.now();
setPercentScroll(percent); setPercentScroll(percent);
} }
@ -293,10 +293,20 @@
} }
contentElement.addEventListener('scroll', webviewLib.logEnabledEventHandler(e => { contentElement.addEventListener('scroll', webviewLib.logEnabledEventHandler(e => {
if (ignoreNextScrollEvent) { console.info('contentElement.scroll', lastScrollEventTime);
ignoreNextScrollEvent = false;
// If the last scroll event was done by the user, lastScrollEventTime is set and
// we can use that to skip the event handling. We skip it because in that case
// the scroll position has already been updated. Also we add a 200ms interval
// because otherwise it's most likely a glitch where we called ipc.setPercentScroll
// but the scroll event listener has not been called.
if (lastScrollEventTime && Date.now() - lastScrollEventTime < 200) {
lastScrollEventTime = 0;
return; return;
} }
lastScrollEventTime = 0;
const percent = currentPercentScroll(); const percent = currentPercentScroll();
setPercentScroll(percent); setPercentScroll(percent);