What I found out is that if I have GridColumn.setMoveable(false); then sorting doesn't
work when grid.setCellSelectionEnabled(true); As soon as I removed GridColumn.setMoveable(false); then sorting worked - of course I don't know why.
This is really simple to explain, and is caused by competition for what pressing the mouse in the column header is supposed to do.
If the column is movable, the mouse down is taken to be the start of a drag of the column to a new location.
If cell selection is enabled and the column is not movable, the mouse down is taken to be the start of a column selection. Clicking in the column header selects the column contents, and you can select multiple columns by dragging across multiple column headers.
If cell selection is disabled or the column is not movable, clicking the column header generates the events required to cause sorting.