This seems to work, but since my the listener calls an RPC-method and I want to minimize RPC-calls, I don't want to do it like this because it gets called even after clicking on a blank spot in the grid.

I am sure you figured this out. However if anyone else is having the problem, a gxt grid has a selection model on to which you can add a listener. This should take care of both cell/row clicks and keyboard navigation on the grid. resultGrid.getSelectionModel().addSelectionChangedListener(newSelectionChangedListener() { @Overridepublicvoid selectionChanged(SelectionChangedEvent se) { //do your stuff here } });