Merge pull request #13220 from Snuffleupagus/currentOutlineItemPromise-isPagesLoaded
Ensure that `currentOutlineButton` enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up)
This commit is contained in:
commit
daf4cd0f78
@ -54,13 +54,15 @@ class PDFOutlineViewer extends BaseTreeViewer {
|
|||||||
this.eventBus._on("pagesloaded", evt => {
|
this.eventBus._on("pagesloaded", evt => {
|
||||||
this._isPagesLoaded = !!evt.pagesCount;
|
this._isPagesLoaded = !!evt.pagesCount;
|
||||||
|
|
||||||
// If the capability is still pending, note the `_dispatchEvent`-method,
|
// If the capability is still pending, see the `_dispatchEvent`-method,
|
||||||
// we know that the `currentOutlineItem`-button should be enabled here.
|
// we know that the `currentOutlineItem`-button can be enabled here.
|
||||||
if (
|
if (
|
||||||
this._currentOutlineItemCapability &&
|
this._currentOutlineItemCapability &&
|
||||||
!this._currentOutlineItemCapability.settled
|
!this._currentOutlineItemCapability.settled
|
||||||
) {
|
) {
|
||||||
this._currentOutlineItemCapability.resolve(/* enabled = */ true);
|
this._currentOutlineItemCapability.resolve(
|
||||||
|
/* enabled = */ this._isPagesLoaded
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.eventBus._on("sidebarviewchanged", evt => {
|
this.eventBus._on("sidebarviewchanged", evt => {
|
||||||
@ -95,6 +97,8 @@ class PDFOutlineViewer extends BaseTreeViewer {
|
|||||||
this._pdfDocument?.loadingParams.disableAutoFetch
|
this._pdfDocument?.loadingParams.disableAutoFetch
|
||||||
) {
|
) {
|
||||||
this._currentOutlineItemCapability.resolve(/* enabled = */ false);
|
this._currentOutlineItemCapability.resolve(/* enabled = */ false);
|
||||||
|
} else if (this._isPagesLoaded) {
|
||||||
|
this._currentOutlineItemCapability.resolve(/* enabled = */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.eventBus.dispatch("outlineloaded", {
|
this.eventBus.dispatch("outlineloaded", {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user