do not freeze browser when calling fold all second time
This commit is contained in:
parent
9002950bf7
commit
a910b8ee18
1 changed files with 12 additions and 11 deletions
|
|
@ -128,13 +128,9 @@ function Folding() {
|
||||||
var folds = [];
|
var folds = [];
|
||||||
var foldLines = this.$foldData;
|
var foldLines = this.$foldData;
|
||||||
|
|
||||||
function addFold(fold) {
|
|
||||||
folds.push(fold);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < foldLines.length; i++)
|
for (var i = 0; i < foldLines.length; i++)
|
||||||
for (var j = 0; j < foldLines[i].folds.length; j++)
|
for (var j = 0; j < foldLines[i].folds.length; j++)
|
||||||
addFold(foldLines[i].folds[j]);
|
folds.push(foldLines[i].folds[j]);
|
||||||
|
|
||||||
return folds;
|
return folds;
|
||||||
};
|
};
|
||||||
|
|
@ -285,7 +281,7 @@ function Folding() {
|
||||||
|
|
||||||
// --- Some checking ---
|
// --- Some checking ---
|
||||||
if (!(startRow < endRow ||
|
if (!(startRow < endRow ||
|
||||||
startRow == endRow && startColumn <= endColumn - 2))
|
startRow == endRow && startColumn < endColumn - 2))
|
||||||
throw new Error("The range has to be at least 2 characters width");
|
throw new Error("The range has to be at least 2 characters width");
|
||||||
|
|
||||||
var startFold = this.getFoldAt(startRow, startColumn, 1);
|
var startFold = this.getFoldAt(startRow, startColumn, 1);
|
||||||
|
|
@ -655,12 +651,15 @@ function Folding() {
|
||||||
if (range && range.isMultiLine()
|
if (range && range.isMultiLine()
|
||||||
&& range.end.row <= endRow
|
&& range.end.row <= endRow
|
||||||
&& range.start.row >= startRow
|
&& range.start.row >= startRow
|
||||||
) try {
|
) {
|
||||||
var fold = this.addFold("...", range);
|
|
||||||
fold.collapseChildren = depth;
|
|
||||||
// addFold can change the range
|
|
||||||
row = range.end.row;
|
row = range.end.row;
|
||||||
} catch(e) {}
|
try {
|
||||||
|
// addFold can change the range
|
||||||
|
var fold = this.addFold("...", range);
|
||||||
|
if (fold)
|
||||||
|
fold.collapseChildren = depth;
|
||||||
|
} catch(e) {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -753,6 +752,8 @@ function Folding() {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.$toggleFoldWidget = function(row, options) {
|
this.$toggleFoldWidget = function(row, options) {
|
||||||
|
if (!this.getFoldWidget)
|
||||||
|
return;
|
||||||
var type = this.getFoldWidget(row);
|
var type = this.getFoldWidget(row);
|
||||||
var line = this.getLine(row);
|
var line = this.getLine(row);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue