summaryrefslogtreecommitdiffstats
path: root/slick.grid.js
diff options
context:
space:
mode:
Diffstat (limited to 'slick.grid.js')
-rw-r--r--slick.grid.js24
1 files changed, 16 insertions, 8 deletions
diff --git a/slick.grid.js b/slick.grid.js
index 24c8a62..2d4193f 100644
--- a/slick.grid.js
+++ b/slick.grid.js
@@ -501,7 +501,8 @@ if (typeof Slick === "undefined") {
}
var sortOpts = null;
- for (var i = 0; i < sortColumns.length; i++) {
+ var i = 0;
+ for (; i < sortColumns.length; i++) {
if (sortColumns[i].columnId == column.id) {
sortOpts = sortColumns[i];
sortOpts.sortAsc = !sortOpts.sortAsc;
@@ -509,15 +510,22 @@ if (typeof Slick === "undefined") {
}
}
- if ((!e.shiftKey && !e.metaKey) || !options.multiColumnSort) {
- sortColumns = [];
+ if (e.ctrlKey && options.multiColumnSort) {
+ if (sortOpts) {
+ sortColumns.splice(i, 1);
+ }
}
+ else {
+ if ((!e.shiftKey && !e.metaKey) || !options.multiColumnSort) {
+ sortColumns = [];
+ }
- if (!sortOpts) {
- sortOpts = { columnId: column.id, sortAsc: true };
- sortColumns.push(sortOpts);
- } else if (sortColumns.length == 0) {
- sortColumns.push(sortOpts);
+ if (!sortOpts) {
+ sortOpts = { columnId: column.id, sortAsc: true };
+ sortColumns.push(sortOpts);
+ } else if (sortColumns.length == 0) {
+ sortColumns.push(sortOpts);
+ }
}
setSortColumns(sortColumns);