]> git.parisson.com Git - pdf.js.git/commitdiff
Treat `zoom` such that it can be a string value as well.
authorJulian Viereck <julian.viereck@gmail.com>
Mon, 2 Jan 2012 19:15:45 +0000 (20:15 +0100)
committerJulian Viereck <julian.viereck@gmail.com>
Mon, 2 Jan 2012 19:42:51 +0000 (20:42 +0100)
web/viewer.js

index 68cd62e294141c3043ac43aabeb66cecee92fd15..ab24cc46fe925b5133d649d4e31c002256134504 100644 (file)
@@ -146,6 +146,7 @@ var PDFView = {
   pages: [],
   thumbnails: [],
   currentScale: 0,
+  currentScaleValue: null,
   initialBookmark: document.location.hash.substring(1),
 
   setScale: function pdfViewSetScale(val, resetAutoSettings) {
@@ -172,6 +173,7 @@ var PDFView = {
       return;
 
     var scale = parseFloat(value);
+    this.currentScaleValue = value;
     if (scale) {
       this.setScale(scale, true);
       return;
@@ -470,8 +472,16 @@ var PDFView = {
         if ('zoom' in params) {
           var zoomArgs = params.zoom.split(','); // scale,left,top
           // building destination array
+
+          // If the zoom value, it has to get divided by 100. If it is a string,
+          // it should stay as it is.
+          var zoomArg = zoomArgs[0];
+          var zoomArgNumber = parseFloat(zoomArg);
+          if (zoomArgNumber)
+            zoomArg = zoomArgNumber / 100;
+
           var dest = [null, {name: 'XYZ'}, (zoomArgs[1] | 0),
-            (zoomArgs[2] | 0), (zoomArgs[0] | 0) / 100];
+            (zoomArgs[2] | 0), zoomArg];
           var currentPage = this.pages[pageNumber - 1];
           currentPage.scrollIntoView(dest);
         } else
@@ -959,10 +969,15 @@ function updateViewarea() {
   PDFView.page = firstPage.id;
   updateViewarea.inProgress = false;
 
+  var currentScale = PDFView.currentScale;
+  var currentScaleValue = PDFView.currentScaleValue;
+  var normalizedScaleValue = currentScaleValue == currentScale ?
+    currentScale * 100 : currentScaleValue;
+
   var kViewerTopMargin = 52;
   var pageNumber = firstPage.id;
   var pdfOpenParams = '#page=' + pageNumber;
-  pdfOpenParams += '&zoom=' + Math.round(PDFView.currentScale * 100);
+  pdfOpenParams += '&zoom=' + normalizedScaleValue;
   var currentPage = PDFView.pages[pageNumber - 1];
   var topLeft = currentPage.getPagePoint(window.pageXOffset,
     window.pageYOffset - firstPage.y - kViewerTopMargin);
@@ -971,7 +986,7 @@ function updateViewarea() {
   var store = PDFView.store;
   store.set('exists', true);
   store.set('page', pageNumber);
-  store.set('zoom', Math.round(PDFView.currentScale * 100));
+  store.set('zoom', normalizedScaleValue);
   store.set('scrollLeft', Math.round(topLeft.x));
   store.set('scrollTop', Math.round(topLeft.y));