We are having a case to insert a record manually to an Ext.data.Store for a grid panel. The calling method is Ext.data.Store.insert(index, records). The record gets inserted without a problem. However, when you click on any row below the newly inserted record, the one above the clicked row gets highlighted.

We debugged into the code behind and found that each item in store.data.items has a property called "index". After insertion, this "index" property is not re-calculated in case the store is not sorted (store.requireSort == false).
Even though Ext.4.1.3 does the same thing without re-indexing, it actually calls store.indexOf(record) in response to the click event, so there is no problem.
However for Ext, it calls getAt(index) in response to the click event, so that the problem above occurs.

The workaround below works for us, but we do not believe it is an ultimate fix:
Ext.override(Ext.data.Store, {
  insert: function(index, records) {
    var me = this;

    if (index >= 0 && records && records.length > 0 && !me.requireSort) {
      for (var i = index; i < me.getCount(); i++) {
        me.data.items[i].index = i;