The 'vis' treeview was updating twice per cursor motion. Fixed. (this makes the diff panel less slow) The root cause might be a bug in pygtk. The TreeView widget was emitting 'cursor-changed' twice instead of once, so this patch works around the issue by using only the first event per cursor position.