in src/studies/apg/toolbar/js/FontMenuItem.js [66:147]
FontMenuItem.prototype.handleKeydown = function (event) {
var tgt = event.currentTarget,
flag = false,
char = event.key,
clickEvent;
function isPrintableCharacter (str) {
return str.length === 1 && str.match(/\S/);
}
if (event.ctrlKey || event.altKey || event.metaKey) {
return;
}
if (event.shiftKey) {
if (isPrintableCharacter(char)) {
this.fontMenu.setFocusByFirstCharacter(this, char);
}
}
else {
switch (event.keyCode) {
case this.keyCode.SPACE:
case this.keyCode.ENTER:
this.handleClick(event);
flag = true;
break;
case this.keyCode.ESC:
this.fontMenu.setFocusToController();
this.fontMenu.close(true);
flag = true;
break;
case this.keyCode.UP:
this.fontMenu.setFocusToPreviousItem(this);
flag = true;
break;
case this.keyCode.DOWN:
this.fontMenu.setFocusToNextItem(this);
flag = true;
break;
case this.keyCode.RIGHT:
flag = true;
break;
case this.keyCode.LEFT:
flag = true;
break;
case this.keyCode.HOME:
case this.keyCode.PAGEUP:
this.fontMenu.setFocusToFirstItem();
flag = true;
break;
case this.keyCode.END:
case this.keyCode.PAGEDOWN:
this.fontMenu.setFocusToLastItem();
flag = true;
break;
case this.keyCode.TAB:
this.fontMenu.setFocusToController();
this.fontMenu.close(true);
break;
default:
if (isPrintableCharacter(char)) {
this.fontMenu.setFocusByFirstCharacter(this, char);
}
break;
}
}
if (flag) {
event.stopPropagation();
event.preventDefault();
}
};