Я обнаружил, что это работает на FF3 / IE8 / Chrome, хотя у него могут быть побочные эффекты, которые еще не обнаружены.
var hide_context_menu = function () { context_menu.hide() };
var context_menu = new Ext.menu.Menu({
allowOtherMenus: true,
items: [...],
listeners: {
show: function () {
Ext.getDoc().on('mouseup', hide_context_menu);
},
hide: function () {
Ext.getDoc().un('mouseup', hide_context_menu);
}
}
});
allowOtherMenus: true
предотвращает скрытие главного меню с помощью MenuMgr, когда появляется контекстное меню. Скрытие обработчика к событию mouseup позволяет обрабатывать события щелчка.