fix for enter key

This commit is contained in:
Rolux 2010-02-07 20:42:14 +05:30
parent 47e0c28de9
commit 81d27621bf

View file

@ -1914,36 +1914,42 @@ requires
function click(event) {
var item,
position,
$target = $(event.target);
that.hideMenu();
if ($target.is(".OxCell")) {
item = that.items[$target.parent().data("position")];
position = $target.parent().data("position");
item = that.items[position];
if (!item.options("disabled")) {
if (that.options("parent")) {
that.options("parent").hideMenu();
}
if (!item.options("items").length) {
if (item.options("checked") !== null && (!item.options("group") || !item.options("checked"))) {
item.options({
checked: !item.options("checked")
});
Ox.Event.trigger("click." + that.id, {
id: item.options("id"),
value: item.options("title")[0] // fixme: value or title?
});
}
if (item.options("title").length == 2) {
item.toggleTitle();
}
}
clickItem(position);
}
}
}
function clickItem() {
// called on key.enter
function clickItem(position) {
var item = that.items[position];
if (that.options("parent")) {
that.options("parent").hideMenu();
}
if (!item.options("items").length) {
if (item.options("checked") !== null && (!item.options("group") || !item.options("checked"))) {
item.options({
checked: !item.options("checked")
});
Ox.Event.trigger("click." + that.id, {
id: item.options("id"),
value: item.options("title")[0] // fixme: value or title?
});
}
if (item.options("title").length == 2) {
item.toggleTitle();
}
}
}
function clickSelectedItem() {
if (self.options.selected > -1) {
that.items[self.options.selected].trigger("click");
clickItem(self.options.selected);
} else {
that.hideMenu();
}
@ -2279,7 +2285,7 @@ requires
key_left: selectSupermenu,
key_right: selectSubmenu,
key_escape: that.hideMenu,
key_enter: clickItem
key_enter: clickSelectedItem
});
setTimeout(function() {
$document.bind("click", click);