The problem can be seen in the following simple example
If you run the example with GXT 2.0.1 you will set a table of 100 rows and every few seconds the rows in view will change as the data is updated. The change brings the last row updated in the grid into view in the visible region of the viewport, moving the scroll bars. This is not the behaviour I would have expected, and as I say from a post on the GXT forum it looks like the problem has been found and fixed and is available for paying customers.
I based my solutions on the suggestion in the post to change the update behavior so that events are not triggered as updates are delivered and a refresh is called afterwards. This solution actually works well on a couple of fronts as it also allows for the bulk delivery of updates to the grid which fits better with my real application usage of an updating ListStore/Grid where I am retrieving updates to a dataset from the server periodically to update the ListStore. So the updated code for my example is as follows.
The relevant changes are in lines 103-109.
1. Turn off event firing for the store
2. Update the store, as many times as you need for different rows
3. Turn events back on
4. Refresh the Grid which will refetch the data.
Hopefully there will be a release of GXT soon which fixes the problem at source.