Merge pull request #587 from notmasteryet/keyfocus
Limits zoom to 25..400 and disable zoom when toolbar is used
This commit is contained in:
commit
2e09c52fa2
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<div class="separator"></div>
|
<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>/</span>
|
||||||
<span id="numPages">--</span>
|
<span id="numPages">--</span>
|
||||||
|
@ -9,6 +9,8 @@ var kDefaultScaleDelta = 1.1;
|
|||||||
var kCacheSize = 20;
|
var kCacheSize = 20;
|
||||||
var kCssUnits = 96.0 / 72.0;
|
var kCssUnits = 96.0 / 72.0;
|
||||||
var kScrollbarPadding = 40;
|
var kScrollbarPadding = 40;
|
||||||
|
var kMinScale = 0.25;
|
||||||
|
var kMaxScale = 4.0;
|
||||||
|
|
||||||
|
|
||||||
var Cache = function(size) {
|
var Cache = function(size) {
|
||||||
@ -72,11 +74,13 @@ var PDFView = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
zoomIn: function() {
|
zoomIn: function() {
|
||||||
this.setScale(this.currentScale * kDefaultScaleDelta, true);
|
var newScale = Math.min(kMaxScale, this.currentScale * kDefaultScaleDelta);
|
||||||
|
this.setScale(newScale, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
zoomOut: function() {
|
zoomOut: function() {
|
||||||
this.setScale(this.currentScale / kDefaultScaleDelta, true);
|
var newScale = Math.max(kMinScale, this.currentScale / kDefaultScaleDelta);
|
||||||
|
this.setScale(newScale, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
set page(val) {
|
set page(val) {
|
||||||
@ -166,6 +170,7 @@ var PDFView = {
|
|||||||
var pdf = new PDFDoc(data);
|
var pdf = new PDFDoc(data);
|
||||||
var pagesCount = pdf.numPages;
|
var pagesCount = pdf.numPages;
|
||||||
document.getElementById('numPages').innerHTML = pagesCount;
|
document.getElementById('numPages').innerHTML = pagesCount;
|
||||||
|
document.getElementById('pageNumber').max = pagesCount;
|
||||||
|
|
||||||
var pages = this.pages = [];
|
var pages = this.pages = [];
|
||||||
var pagesRefMap = {};
|
var pagesRefMap = {};
|
||||||
@ -628,6 +633,13 @@ window.addEventListener('pagechange', function pagechange(evt) {
|
|||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
window.addEventListener('keydown', function keydown(evt) {
|
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) {
|
switch (evt.keyCode) {
|
||||||
case 61: // FF/Mac '='
|
case 61: // FF/Mac '='
|
||||||
case 107: // FF '+' and '='
|
case 107: // FF '+' and '='
|
||||||
|
Loading…
x
Reference in New Issue
Block a user