Handle keyboard events and menu placement better in IE < 9
This commit is contained in:
parent
3fa5b2d2ad
commit
d7f946e5cb
|
@ -161,6 +161,7 @@
|
||||||
// Keydown event handler. Should only fire on Space key.
|
// Keydown event handler. Should only fire on Space key.
|
||||||
//
|
//
|
||||||
Keydown: function (event, math) {
|
Keydown: function (event, math) {
|
||||||
|
if (!event) event = window.event;
|
||||||
if (event.keyCode === EVENT.KEY.SPACE) {
|
if (event.keyCode === EVENT.KEY.SPACE) {
|
||||||
EVENT.ContextMenu(event, this);
|
EVENT.ContextMenu(event, this);
|
||||||
};
|
};
|
||||||
|
|
|
@ -311,7 +311,7 @@
|
||||||
|
|
||||||
div.appendChild(menu);
|
div.appendChild(menu);
|
||||||
this.posted = true;
|
this.posted = true;
|
||||||
menu.style.width = (menu.offsetWidth+2) + "px";
|
if (menu.offsetWidth) menu.style.width = (menu.offsetWidth+2) + "px";
|
||||||
if (event) {
|
if (event) {
|
||||||
var x = event.pageX, y = event.pageY;
|
var x = event.pageX, y = event.pageY;
|
||||||
}
|
}
|
||||||
|
@ -321,7 +321,7 @@
|
||||||
}
|
}
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
var node = MENU.CurrentNode() || event.target;
|
var node = MENU.CurrentNode() || event.target;
|
||||||
if (!x && !y && node) {
|
if ((event.type === "keydown" || (!x && !y)) && node) {
|
||||||
var offsetX = window.pageXOffset || document.documentElement.scrollLeft;
|
var offsetX = window.pageXOffset || document.documentElement.scrollLeft;
|
||||||
var offsetY = window.pageYOffset || document.documentElement.scrollTop;
|
var offsetY = window.pageYOffset || document.documentElement.scrollTop;
|
||||||
var rect = node.getBoundingClientRect();
|
var rect = node.getBoundingClientRect();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user