This is how I got around the problem. I'm currently using ExtJS 3.2.1. Placing this listener on your grid should work. Good luck.
PHP Code:
/**
* We always want validateedit and afteredit events to fire, so fix it so they do.
* This allows us to have a listener on the grid to know when the user has left
* a field after beginedit had fired. Normally the aferedit event only gets fired
* if the user actually made changes and clicked somewhere else on the grid.
* Now if fires if the user clicks somewhere else like another grid.
*
* @param ed
* @param value
* @param startValue
*/
onEditComplete: function(ed, value, startValue){
this.editing = false;
this.activeEditor = null;
ed.un("specialkey", this.selModel.onEditorKey, this.selModel);
var r = ed.record;
var field = this.colModel.getDataIndex(ed.col);
// Setup the object to be passed to the validateedit event.
var e = {
grid: this,
record: r,
field: field,
originalValue: startValue,
value: value,
row: ed.row,
column: ed.col,
cancel:false
};
if(this.fireEvent("validateedit", e) !== false && !e.cancel){
r.set(field, value);
delete e.cancel;
this.fireEvent("afteredit", e);
}
this.view.focusCell(ed.row, ed.col);
}