Fix keyboard mapping in viewer

This commit is contained in:
Julian Viereck 2012-04-10 09:55:52 -07:00
parent d8235925ac
commit caa3c3fdc4

View File

@ -1456,8 +1456,6 @@ window.addEventListener('pagechange', function pagechange(evt) {
}, true); }, true);
window.addEventListener('keydown', function keydown(evt) { window.addEventListener('keydown', function keydown(evt) {
if (evt.ctrlKey || evt.altKey || evt.shiftKey || evt.metaKey)
return;
var curElement = document.activeElement; var curElement = document.activeElement;
if (curElement && curElement.tagName == 'INPUT') if (curElement && curElement.tagName == 'INPUT')
return; return;
@ -1467,35 +1465,48 @@ window.addEventListener('keydown', function keydown(evt) {
return; // ignoring if the 'controls' element is focused return; // ignoring if the 'controls' element is focused
curElement = curElement.parentNode; curElement = curElement.parentNode;
} }
var cmd = 0;
if (evt.ctrlKey) cmd |= 1;
if (evt.altKey) cmd |= 2;
if (evt.shiftKey) cmd |= 4;
if (evt.metaKey) cmd |= 8;
var handled = false; var handled = false;
switch (evt.keyCode) { if (cmd == 0) { // no control key pressed at all.
case 61: // FF/Mac '=' switch (evt.keyCode) {
case 107: // FF '+' and '=' case 37: // left arrow
case 187: // Chrome '+' case 75: // 'k'
PDFView.zoomIn(); case 80: // 'p'
handled = true; PDFView.page--;
break; handled = true;
case 109: // FF '-' break;
case 189: // Chrome '-' case 39: // right arrow
PDFView.zoomOut(); case 74: // 'j'
handled = true; case 78: // 'n'
break; PDFView.page++;
case 48: // '0' handled = true;
PDFView.parseScale(kDefaultScale, true); break;
handled = true; }
break; }
case 37: // left arrow else if (cmd == 1 || cmd == 8) { // either CTRL or META key.
case 75: // 'k' switch (evt.keyCode) {
case 80: // 'p' case 61: // FF/Mac '='
PDFView.page--; case 107: // FF '+' and '='
handled = true; case 187: // Chrome '+'
break; PDFView.zoomIn();
case 39: // right arrow handled = true;
case 74: // 'j' break;
case 78: // 'n' case 109: // FF '-'
PDFView.page++; case 189: // Chrome '-'
handled = true; PDFView.zoomOut();
break; handled = true;
break;
case 48: // '0'
PDFView.parseScale(kDefaultScale, true);
handled = true;
break;
}
} }
if (handled) { if (handled) {