Allow the scrollModeOnLoad/spreadModeOnLoad Preferences to override ViewHistory settings

Note how the other "...OnLoad" preferences will allow a *non-default* value to always override a history entry. To improve overall consistency for the viewer options, and to reduce possibly confusing behaviour, this patch changes the `scrollModeOnLoad`/`spreadModeOnLoad` preferences to behave as all the other ones.
This commit is contained in:
Jonas Jenwald 2018-06-29 13:16:00 +02:00
parent baf9c98bc7
commit a9a93bd923

View File

@ -1043,12 +1043,8 @@ let PDFViewerApplication = {
rotation = parseInt(values.rotation, 10);
sidebarView = sidebarView || (values.sidebarView | 0);
if (values.scrollMode !== null) {
scrollMode = values.scrollMode;
}
if (values.spreadMode !== null) {
spreadMode = values.spreadMode;
}
scrollMode = scrollMode || (values.scrollMode | 0);
spreadMode = spreadMode || (values.spreadMode | 0);
}
if (pageMode && !AppOptions.get('disablePageMode')) {
// Always let the user preference/history take precedence.
@ -1245,23 +1241,26 @@ let PDFViewerApplication = {
});
},
setInitialView(storedHash, values = {}) {
let { rotation, sidebarView, scrollMode, spreadMode, } = values;
setInitialView(storedHash, { rotation, sidebarView,
scrollMode, spreadMode, } = {}) {
let setRotation = (angle) => {
if (isValidRotation(angle)) {
this.pdfViewer.pagesRotation = angle;
}
};
let setViewerModes = (scroll, spread) => {
if (Number.isInteger(scroll)) {
this.pdfViewer.setScrollMode(scroll);
}
if (Number.isInteger(spread)) {
this.pdfViewer.setSpreadMode(spread);
}
};
// Putting these before isInitialViewSet = true prevents these values from
// being stored in the document history (and overriding any future changes
// made to the corresponding global preferences), just this once.
if (Number.isInteger(scrollMode)) {
this.pdfViewer.setScrollMode(scrollMode);
}
if (Number.isInteger(spreadMode)) {
this.pdfViewer.setSpreadMode(spreadMode);
}
setViewerModes(scrollMode, spreadMode);
this.isInitialViewSet = true;
this.pdfSidebar.setInitialView(sidebarView);