mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Move rotation normalization from PDFViewerApplication
and into BaseViewer
The rotation handling that's currently living in `PDFViewerApplication` is *very* old, and pre-dates the introduction of the viewer components by years. As can be seen in the `BaseViewer.pagesRotation` setter, we're not actually normalizing the rotation as intended and instead rely on the caller to handle that correctly. This is first of all inconsistent, given how other setters are implemented, and secondly it could also lead to the rotation being set to a value outside of the `[0, 360)`-range. Finally, for improved consistency the rotation handling in `PageViewport` is updated similarly. Please note that this case, it's *not* changing the pre-existing logic.
This commit is contained in:
parent
ba76dd4000
commit
19c2dfbb96
3 changed files with 11 additions and 7 deletions
|
@ -250,8 +250,11 @@ class PageViewport {
|
|||
const centerX = (viewBox[2] + viewBox[0]) / 2;
|
||||
const centerY = (viewBox[3] + viewBox[1]) / 2;
|
||||
let rotateA, rotateB, rotateC, rotateD;
|
||||
rotation = rotation % 360;
|
||||
rotation = rotation < 0 ? rotation + 360 : rotation;
|
||||
// Normalize the rotation, by clamping it to the [0, 360) range.
|
||||
rotation %= 360;
|
||||
if (rotation < 0) {
|
||||
rotation += 360;
|
||||
}
|
||||
switch (rotation) {
|
||||
case 180:
|
||||
rotateA = -1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue