Code:
Ext.override(Ext.form.ComboBox,
{
onListSelectionChange: function(list, selectedRecords) {
var me = this;
// Only react to selection if it is not called from setValue, and if our list is
// expanded (ignores changes to the selection model triggered elsewhere)
if (!me.ignoreSelection && me.isExpanded) {
var allowSelect = true;
var lastSelectedRecord = me.picker.getSelectionModel().lastSelected;
if (lastSelectedRecord != undefined)
allowSelect = me.fireEvent('beforeselect', me, lastSelectedRecord) !== false;
if(allowSelect)
{
if (!me.multiSelect) {
Ext.defer(me.collapse, 1, me);
}
me.setValue(selectedRecords, false);
if (selectedRecords.length > 0) {
me.fireEvent('select', me, selectedRecords);
}
me.inputEl.focus();
} else {
me.picker.getSelectionModel().deselect(lastSelectedRecord);
}
}
}
});