diff options
author | Damien Churchill <damoxc@gmail.com> | 2010-07-01 14:08:20 +0100 |
---|---|---|
committer | Damien Churchill <damoxc@gmail.com> | 2010-07-01 14:08:20 +0100 |
commit | 6ff1da2391473b7109e2ada73cdf39f21257b169 (patch) | |
tree | 706853ad53cbcec1556385c6631ccc582b7d80c7 | |
parent | 4614188c62cff83fd3065f12945198609cab4889 (diff) | |
download | deluge-6ff1da2391473b7109e2ada73cdf39f21257b169.tar.gz deluge-6ff1da2391473b7109e2ada73cdf39f21257b169.tar.bz2 deluge-6ff1da2391473b7109e2ada73cdf39f21257b169.zip |
fix select 'upwards'
-rw-r--r-- | deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js b/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js index 866e6865e..d699cce5b 100644 --- a/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js +++ b/deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js @@ -45,16 +45,24 @@ Ext.override(Ext.tree.MultiSelectionModel, { if (this.lastSelNode.parentNode.id != parentNode.id) return; // Get the node indexes - var ni = parentNode.indexOf(node), + var fi = parentNode.indexOf(node), li = parentNode.indexOf(this.lastSelNode); + // Swap the values if required + if (fi > li) { + fi = fi + li, li = fi - li, fi = fi - li; + } + // Select all the nodes parentNode.eachChild(function(n) { var i = parentNode.indexOf(n); - if (li < i && i <= ni) { + if (fi < i && i < li) { this.select(n, e, true); } }, this); + + // Select the clicked node + this.select(node, e, true); } else { this.select(node, e, e.ctrlKey); } |