]> git.parisson.com Git - pdf.js.git/commitdiff
Limiting scale 25..400 (ref #582); disable scale keyboard when toolbar is active...
authornotmasteryet <async.processingjs@yahoo.com>
Sat, 1 Oct 2011 20:52:27 +0000 (15:52 -0500)
committernotmasteryet <async.processingjs@yahoo.com>
Sat, 1 Oct 2011 20:52:27 +0000 (15:52 -0500)
web/viewer.html
web/viewer.js

index e22cacbf6cfa7130262205ee42e396e90e686a1a..d964bbee68dfbf47ce7246b51b0f6dbc0dd193e8 100644 (file)
@@ -28,7 +28,7 @@
 
       <div class="separator"></div>
 
-      <input type="text" id="pageNumber" onchange="PDFView.page = this.value;" value="1" size="4"/>
+      <input type="number" id="pageNumber" onchange="PDFView.page = this.value;" value="1" size="4" min="1" />
 
       <span>/</span>
       <span id="numPages">--</span>
index da41c1d0bd64f755ec593208eeef9be46880e845..02f803174f0d36371c795cb8a235d2d106f17cc5 100644 (file)
@@ -9,6 +9,8 @@ var kDefaultScaleDelta = 1.1;
 var kCacheSize = 20;
 var kCssUnits = 96.0 / 72.0;
 var kScrollbarPadding = 40;
+var kMinScale = 0.25;
+var kMaxScale = 4.0;
 
 
 var Cache = function(size) {
@@ -72,11 +74,13 @@ var PDFView = {
   },
 
   zoomIn: function() {
-    this.setScale(this.currentScale * kDefaultScaleDelta, true);
+    var newScale = Math.min(kMaxScale, this.currentScale * kDefaultScaleDelta);
+    this.setScale(newScale, true);
   },
 
   zoomOut: function() {
-    this.setScale(this.currentScale / kDefaultScaleDelta, true);
+    var newScale = Math.max(kMinScale, this.currentScale / kDefaultScaleDelta);
+    this.setScale(newScale, true);
   },
 
   set page(val) {
@@ -166,6 +170,7 @@ var PDFView = {
     var pdf = new PDFDoc(data);
     var pagesCount = pdf.numPages;
     document.getElementById('numPages').innerHTML = pagesCount;
+    document.getElementById('pageNumber').max = pagesCount;
 
     var pages = this.pages = [];
     var pagesRefMap = {};
@@ -628,6 +633,13 @@ window.addEventListener('pagechange', function pagechange(evt) {
 }, true);
 
 window.addEventListener('keydown', function keydown(evt) {
+  var curElement = document.activeElement;
+  var controlsElement = document.getElementById('controls');
+  while (curElement) {
+    if (curElement === controlsElement)
+      return; // ignoring if the 'controls' element is focused
+    curElement = curElement.parentNode;
+  }
   switch (evt.keyCode) {
     case 61: // FF/Mac '='
     case 107: // FF '+' and '='