Bug 1957680 - Trigger a fake scrollend event in case it hasn't been triggered by the browser in the pdf viewer a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D262320
This commit is contained in:
committed by
rvandermeulen@mozilla.com
parent
64d0b99892
commit
2782b9db1d
@@ -9990,27 +9990,32 @@ const PDFViewerApplication = {
|
||||
}, {
|
||||
signal
|
||||
});
|
||||
let scrollendTimeoutID, scrollAbortController;
|
||||
const scrollend = () => {
|
||||
this._isScrolling = false;
|
||||
mainContainer.addEventListener("scroll", scroll, {
|
||||
passive: true,
|
||||
signal
|
||||
});
|
||||
mainContainer.removeEventListener("scrollend", scrollend);
|
||||
mainContainer.removeEventListener("blur", scrollend);
|
||||
clearTimeout(scrollendTimeoutID);
|
||||
if (this._isScrolling) {
|
||||
scrollAbortController.abort();
|
||||
scrollAbortController = null;
|
||||
this._isScrolling = false;
|
||||
}
|
||||
};
|
||||
const scroll = () => {
|
||||
if (this._isCtrlKeyDown) {
|
||||
return;
|
||||
}
|
||||
mainContainer.removeEventListener("scroll", scroll);
|
||||
this._isScrolling = true;
|
||||
mainContainer.addEventListener("scrollend", scrollend, {
|
||||
signal
|
||||
});
|
||||
mainContainer.addEventListener("blur", scrollend, {
|
||||
signal
|
||||
});
|
||||
if (!this._isScrolling) {
|
||||
scrollAbortController = new AbortController();
|
||||
const abortSignal = AbortSignal.any([scrollAbortController.signal, signal]);
|
||||
mainContainer.addEventListener("scrollend", scrollend, {
|
||||
signal: abortSignal,
|
||||
});
|
||||
mainContainer.addEventListener("blur", scrollend, {
|
||||
signal: abortSignal,
|
||||
});
|
||||
this._isScrolling = true;
|
||||
}
|
||||
clearTimeout(scrollendTimeoutID);
|
||||
scrollendTimeoutID = setTimeout(scrollend, 100);
|
||||
};
|
||||
mainContainer.addEventListener("scroll", scroll, {
|
||||
passive: true,
|
||||
|
||||
@@ -14630,27 +14630,32 @@ const PDFViewerApplication = {
|
||||
}, {
|
||||
signal
|
||||
});
|
||||
let scrollendTimeoutID, scrollAbortController;
|
||||
const scrollend = () => {
|
||||
this._isScrolling = false;
|
||||
mainContainer.addEventListener("scroll", scroll, {
|
||||
passive: true,
|
||||
signal
|
||||
});
|
||||
mainContainer.removeEventListener("scrollend", scrollend);
|
||||
mainContainer.removeEventListener("blur", scrollend);
|
||||
clearTimeout(scrollendTimeoutID);
|
||||
if (this._isScrolling) {
|
||||
scrollAbortController.abort();
|
||||
scrollAbortController = null;
|
||||
this._isScrolling = false;
|
||||
}
|
||||
};
|
||||
const scroll = () => {
|
||||
if (this._isCtrlKeyDown) {
|
||||
return;
|
||||
}
|
||||
mainContainer.removeEventListener("scroll", scroll);
|
||||
this._isScrolling = true;
|
||||
mainContainer.addEventListener("scrollend", scrollend, {
|
||||
signal
|
||||
});
|
||||
mainContainer.addEventListener("blur", scrollend, {
|
||||
signal
|
||||
});
|
||||
if (!this._isScrolling) {
|
||||
scrollAbortController = new AbortController();
|
||||
const abortSignal = AbortSignal.any([scrollAbortController.signal, signal]);
|
||||
mainContainer.addEventListener("scrollend", scrollend, {
|
||||
signal: abortSignal,
|
||||
});
|
||||
mainContainer.addEventListener("blur", scrollend, {
|
||||
signal: abortSignal,
|
||||
});
|
||||
this._isScrolling = true;
|
||||
}
|
||||
clearTimeout(scrollendTimeoutID);
|
||||
scrollendTimeoutID = setTimeout(scrollend, 100);
|
||||
};
|
||||
mainContainer.addEventListener("scroll", scroll, {
|
||||
passive: true,
|
||||
|
||||
Reference in New Issue
Block a user