The Ext.tree.MultiSelectionModel handles multiple selections very well by utilizing the well known Ctrl+Click action to do multiple selections of tree nodes. However, doing Ctrl+Click on an already selected node does not unselect it, which is quite unintuitive to the Ctrl+Click action. To add this behavior, simply override the private onNodeClick method of the MultiSelectionModel class:
Ext.override(Ext.tree.MultiSelectionModel, {
onNodeClick: function(node, e){
if (e.ctrlKey && this.isSelected(node))
this.unselect(node);
else
this.select(node, e, e.ctrlKey);
}
});