Remove the sidebar resize observer when killing the UI

This commit is contained in:
Calixte Denizet 2026-03-02 17:55:06 +01:00
parent 4d0709c174
commit 1ac5dfeba8
4 changed files with 21 additions and 8 deletions

View File

@ -531,7 +531,8 @@ const PDFViewerApplication = {
linkService, linkService,
overlayManager, overlayManager,
/* ltr = */ l10n.getDirection() === "ltr", /* ltr = */ l10n.getDirection() === "ltr",
hasForcedColors hasForcedColors,
abortSignal
) )
: null; : null;
@ -763,6 +764,7 @@ const PDFViewerApplication = {
eventBus, eventBus,
l10n, l10n,
enableSplitMerge, enableSplitMerge,
globalAbortSignal: abortSignal,
}); });
this.viewsManager.onToggled = this.forceRendering.bind(this); this.viewsManager.onToggled = this.forceRendering.bind(this);
this.viewsManager.onUpdateThumbnails = () => { this.viewsManager.onUpdateThumbnails = () => {

View File

@ -45,7 +45,8 @@ class CommentManager {
linkService, linkService,
overlayManager, overlayManager,
ltr, ltr,
hasForcedColors hasForcedColors,
globalAbortSignal
) { ) {
const dateFormat = new Intl.DateTimeFormat(undefined, { const dateFormat = new Intl.DateTimeFormat(undefined, {
dateStyle: "long", dateStyle: "long",
@ -69,7 +70,8 @@ class CommentManager {
linkService, linkService,
this.#popup, this.#popup,
dateFormat, dateFormat,
ltr ltr,
globalAbortSignal
); );
this.#popup.sidebar = this.#sidebar; this.#popup.sidebar = this.#sidebar;
CommentManager.#hasForcedColors = hasForcedColors; CommentManager.#hasForcedColors = hasForcedColors;
@ -188,12 +190,14 @@ class CommentSidebar extends Sidebar {
linkService, linkService,
popup, popup,
dateFormat, dateFormat,
ltr ltr,
globalAbortSignal
) { ) {
super( super(
{ sidebar, resizer: sidebarResizer, toggleButton: commentToolbarButton }, { sidebar, resizer: sidebarResizer, toggleButton: commentToolbarButton },
ltr, ltr,
/* isResizerOnTheLeft = */ true /* isResizerOnTheLeft = */ true,
globalAbortSignal
); );
this.#sidebarTitle = sidebarTitle; this.#sidebarTitle = sidebarTitle;
this.#commentsList = commentsList; this.#commentsList = commentsList;

View File

@ -54,7 +54,12 @@ class Sidebar {
* @param {boolean} ltr * @param {boolean} ltr
* @param {boolean} isResizerOnTheLeft * @param {boolean} isResizerOnTheLeft
*/ */
constructor({ sidebar, resizer, toggleButton }, ltr, isResizerOnTheLeft) { constructor(
{ sidebar, resizer, toggleButton },
ltr,
isResizerOnTheLeft,
globalAbortSignal
) {
this._sidebar = sidebar; this._sidebar = sidebar;
this.#coefficient = ltr === isResizerOnTheLeft ? -1 : 1; this.#coefficient = ltr === isResizerOnTheLeft ? -1 : 1;
this.#resizer = resizer; this.#resizer = resizer;
@ -74,7 +79,7 @@ class Sidebar {
toggleButton.addEventListener("click", this.toggle.bind(this)); toggleButton.addEventListener("click", this.toggle.bind(this));
this._isOpen = false; this._isOpen = false;
sidebar.hidden = true; sidebar.hidden = true;
globalAbortSignal?.addEventListener("abort", this.destroy.bind(this));
this.#resizeObserver = new ResizeObserver( this.#resizeObserver = new ResizeObserver(
([ ([
{ {

View File

@ -99,6 +99,7 @@ class ViewsManager extends Sidebar {
eventBus, eventBus,
l10n, l10n,
enableSplitMerge = false, enableSplitMerge = false,
globalAbortSignal,
}) { }) {
super( super(
{ {
@ -107,7 +108,8 @@ class ViewsManager extends Sidebar {
toggleButton, toggleButton,
}, },
l10n.getDirection() === "ltr", l10n.getDirection() === "ltr",
/* isResizerOnTheLeft = */ false /* isResizerOnTheLeft = */ false,
globalAbortSignal
); );
this.isOpen = false; this.isOpen = false;
this.active = SidebarView.THUMBS; this.active = SidebarView.THUMBS;