Move the isPortraitOrientation helper function from web/base_viewer.js to web/ui_utils.js

A couple of basic unit-tests are added, and a manual `isLandscape` check (in `web/base_viewer.js`) is also converted to use the helper function instead.
This commit is contained in:
Jonas Jenwald 2018-03-20 13:25:13 +01:00
parent 5c1a16ba6e
commit 77d025dc14
3 changed files with 33 additions and 11 deletions

View file

@ -14,9 +14,10 @@
*/
import {
CSS_UNITS, DEFAULT_SCALE, DEFAULT_SCALE_VALUE, isValidRotation,
MAX_AUTO_SCALE, NullL10n, PresentationModeState, RendererType,
SCROLLBAR_PADDING, TextLayerMode, UNKNOWN_SCALE, VERTICAL_PADDING, watchScroll
CSS_UNITS, DEFAULT_SCALE, DEFAULT_SCALE_VALUE, isPortraitOrientation,
isValidRotation, MAX_AUTO_SCALE, NullL10n, PresentationModeState,
RendererType, SCROLLBAR_PADDING, TextLayerMode, UNKNOWN_SCALE,
VERTICAL_PADDING, watchScroll
} from './ui_utils';
import { PDFRenderingQueue, RenderingStates } from './pdf_rendering_queue';
import { AnnotationLayerBuilder } from './annotation_layer_builder';
@ -94,10 +95,6 @@ function isSameScale(oldScale, newScale) {
return false;
}
function isPortraitOrientation(size) {
return size.width <= size.height;
}
/**
* Simple viewer control to display PDF content/pages.
* @implements {IRenderableView}
@ -578,11 +575,10 @@ class BaseViewer {
scale = Math.min(pageWidthScale, pageHeightScale);
break;
case 'auto':
let isLandscape = (currentPage.width > currentPage.height);
// For pages in landscape mode, fit the page height to the viewer
// *unless* the page would thus become too wide to fit horizontally.
let horizontalScale = isLandscape ?
Math.min(pageHeightScale, pageWidthScale) : pageWidthScale;
let horizontalScale = isPortraitOrientation(currentPage) ?
pageWidthScale : Math.min(pageHeightScale, pageWidthScale);
scale = Math.min(MAX_AUTO_SCALE, horizontalScale);
break;
default: