Merge pull request #1526 from jviereck/fix_keyboard
Fix keyboardbindings
This commit is contained in:
commit
6aacffaeb6
@ -1514,8 +1514,41 @@ 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)
|
var handled = false;
|
||||||
|
var cmd = (evt.ctrlKey ? 1 : 0) |
|
||||||
|
(evt.altKey ? 2 : 0) |
|
||||||
|
(evt.shiftKey ? 4 : 0) |
|
||||||
|
(evt.metaKey ? 8 : 0);
|
||||||
|
|
||||||
|
// First, handle the key bindings that are independent whether an input
|
||||||
|
// control is selected or not.
|
||||||
|
if (cmd == 1 || cmd == 8) { // either CTRL or META key.
|
||||||
|
switch (evt.keyCode) {
|
||||||
|
case 61: // FF/Mac '='
|
||||||
|
case 107: // FF '+' and '='
|
||||||
|
case 187: // Chrome '+'
|
||||||
|
PDFView.zoomIn();
|
||||||
|
handled = true;
|
||||||
|
break;
|
||||||
|
case 109: // FF '-'
|
||||||
|
case 189: // Chrome '-'
|
||||||
|
PDFView.zoomOut();
|
||||||
|
handled = true;
|
||||||
|
break;
|
||||||
|
case 48: // '0'
|
||||||
|
PDFView.parseScale(kDefaultScale, true);
|
||||||
|
handled = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (handled) {
|
||||||
|
evt.preventDefault();
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some shortcuts should not get handled if a control/input element
|
||||||
|
// is selected.
|
||||||
var curElement = document.activeElement;
|
var curElement = document.activeElement;
|
||||||
if (curElement && curElement.tagName == 'INPUT')
|
if (curElement && curElement.tagName == 'INPUT')
|
||||||
return;
|
return;
|
||||||
@ -1525,35 +1558,22 @@ 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 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
|
|
||||||
case 75: // 'k'
|
|
||||||
case 80: // 'p'
|
|
||||||
PDFView.page--;
|
|
||||||
handled = true;
|
|
||||||
break;
|
|
||||||
case 39: // right arrow
|
|
||||||
case 74: // 'j'
|
|
||||||
case 78: // 'n'
|
|
||||||
PDFView.page++;
|
|
||||||
handled = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (handled) {
|
if (handled) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user