summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Churchill <damoxc@gmail.com>2010-07-01 14:08:20 +0100
committerDamien Churchill <damoxc@gmail.com>2010-07-01 14:08:20 +0100
commit6ff1da2391473b7109e2ada73cdf39f21257b169 (patch)
tree706853ad53cbcec1556385c6631ccc582b7d80c7
parent4614188c62cff83fd3065f12945198609cab4889 (diff)
downloaddeluge-6ff1da2391473b7109e2ada73cdf39f21257b169.tar.gz
deluge-6ff1da2391473b7109e2ada73cdf39f21257b169.tar.bz2
deluge-6ff1da2391473b7109e2ada73cdf39f21257b169.zip
fix select 'upwards'
-rw-r--r--deluge/ui/web/js/ext-extensions/tree/MultiSelectionModelFix.js12
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);
}