Merge pull request #18831 from Snuffleupagus/toolbar-container
Fix `toolbarViewer`/`toolbarContainer` regressions (PR 18385, 18786 follow-up)
This commit is contained in:
commit
e25832c43f
21
web/app.js
21
web/app.js
@ -376,18 +376,16 @@ const PDFViewerApplication = {
|
|||||||
async _initializeViewerComponents() {
|
async _initializeViewerComponents() {
|
||||||
const { appConfig, externalServices, l10n } = this;
|
const { appConfig, externalServices, l10n } = this;
|
||||||
|
|
||||||
let eventBus;
|
const eventBus =
|
||||||
if (typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")) {
|
typeof PDFJSDev !== "undefined" && PDFJSDev.test("MOZCENTRAL")
|
||||||
eventBus = AppOptions.eventBus = new FirefoxEventBus(
|
? new FirefoxEventBus(
|
||||||
AppOptions.get("allowedGlobalEvents"),
|
AppOptions.get("allowedGlobalEvents"),
|
||||||
externalServices,
|
externalServices,
|
||||||
AppOptions.get("isInAutomation")
|
AppOptions.get("isInAutomation")
|
||||||
);
|
)
|
||||||
} else {
|
: new EventBus();
|
||||||
eventBus = new EventBus();
|
this.eventBus = AppOptions.eventBus = eventBus;
|
||||||
}
|
|
||||||
this.mlManager?.setEventBus(eventBus, this._globalAbortController.signal);
|
this.mlManager?.setEventBus(eventBus, this._globalAbortController.signal);
|
||||||
this.eventBus = eventBus;
|
|
||||||
|
|
||||||
this.overlayManager = new OverlayManager();
|
this.overlayManager = new OverlayManager();
|
||||||
|
|
||||||
@ -876,6 +874,7 @@ const PDFViewerApplication = {
|
|||||||
|
|
||||||
moveCaret(isUp, select) {
|
moveCaret(isUp, select) {
|
||||||
this._caretBrowsing ||= new CaretBrowsingMode(
|
this._caretBrowsing ||= new CaretBrowsingMode(
|
||||||
|
this._globalAbortController.signal,
|
||||||
this.appConfig.mainContainer,
|
this.appConfig.mainContainer,
|
||||||
this.appConfig.viewerContainer,
|
this.appConfig.viewerContainer,
|
||||||
this.appConfig.toolbar?.container
|
this.appConfig.toolbar?.container
|
||||||
|
|||||||
@ -19,14 +19,32 @@ const PRECISION = 1e-1;
|
|||||||
class CaretBrowsingMode {
|
class CaretBrowsingMode {
|
||||||
#mainContainer;
|
#mainContainer;
|
||||||
|
|
||||||
#toolBarHeight;
|
#toolBarHeight = 0;
|
||||||
|
|
||||||
#viewerContainer;
|
#viewerContainer;
|
||||||
|
|
||||||
constructor(mainContainer, viewerContainer, toolbarContainer) {
|
constructor(abortSignal, mainContainer, viewerContainer, toolbarContainer) {
|
||||||
this.#mainContainer = mainContainer;
|
this.#mainContainer = mainContainer;
|
||||||
this.#viewerContainer = viewerContainer;
|
this.#viewerContainer = viewerContainer;
|
||||||
this.#toolBarHeight = toolbarContainer?.getBoundingClientRect().height ?? 0;
|
|
||||||
|
if (!toolbarContainer) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.#toolBarHeight = toolbarContainer.getBoundingClientRect().height;
|
||||||
|
|
||||||
|
const toolbarObserver = new ResizeObserver(entries => {
|
||||||
|
for (const entry of entries) {
|
||||||
|
if (entry.target === toolbarContainer) {
|
||||||
|
this.#toolBarHeight = Math.floor(entry.borderBoxSize[0].blockSize);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
toolbarObserver.observe(toolbarContainer);
|
||||||
|
|
||||||
|
abortSignal.addEventListener("abort", () => toolbarObserver.disconnect(), {
|
||||||
|
once: true,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -41,7 +41,7 @@ function getViewerConfiguration() {
|
|||||||
mainContainer: document.getElementById("viewerContainer"),
|
mainContainer: document.getElementById("viewerContainer"),
|
||||||
viewerContainer: document.getElementById("viewer"),
|
viewerContainer: document.getElementById("viewer"),
|
||||||
toolbar: {
|
toolbar: {
|
||||||
container: document.getElementById("toolbarViewer"),
|
container: document.getElementById("toolbarContainer"),
|
||||||
numPages: document.getElementById("numPages"),
|
numPages: document.getElementById("numPages"),
|
||||||
pageNumber: document.getElementById("pageNumber"),
|
pageNumber: document.getElementById("pageNumber"),
|
||||||
scaleSelect: document.getElementById("scaleSelect"),
|
scaleSelect: document.getElementById("scaleSelect"),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user