do not throw for broken anchors since that can break editor
This commit is contained in:
parent
d619e4e746
commit
004a19855a
1 changed files with 7 additions and 10 deletions
|
|
@ -70,7 +70,6 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|||
* @returns {Object}
|
||||
**/
|
||||
this.getPosition = function() {
|
||||
//process.exit(2)
|
||||
return this.$clipPositionToDocument(this.row, this.column);
|
||||
};
|
||||
|
||||
|
|
@ -107,7 +106,7 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|||
if (delta.start.row > this.row)
|
||||
return;
|
||||
|
||||
var point = this.$getTransformedPoint(delta, {row: this.row, column: this.column});
|
||||
var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight);
|
||||
this.setPosition(point.row, point.column, true);
|
||||
};
|
||||
|
||||
|
|
@ -116,14 +115,13 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|||
return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter);
|
||||
}
|
||||
|
||||
this.$getTransformedPoint = function (delta, point) {
|
||||
function $getTransformedPoint(delta, point, moveIfEqual) {
|
||||
// Get delta info.
|
||||
var moveIfEqual = this.$insertRight;
|
||||
var deltaIsInsert = (delta.action == "insert")
|
||||
var deltaIsInsert = delta.action == "insert";
|
||||
var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row);
|
||||
var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column);
|
||||
var deltaStart = delta.start;
|
||||
var deltaEnd = (deltaIsInsert ? deltaStart : delta.end); // Collapse insert range.
|
||||
var deltaStart = delta.start;
|
||||
var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range.
|
||||
|
||||
// DELTA AFTER POINT: No change needed.
|
||||
if ($pointsInOrder(point, deltaStart, moveIfEqual)) {
|
||||
|
|
@ -142,14 +140,13 @@ var Anchor = exports.Anchor = function(doc, row, column) {
|
|||
}
|
||||
|
||||
// DELTA ENVELOPS POINT (delete only): Move point to delta start.
|
||||
if (delta.action != "remove")
|
||||
throw "Delete action expected.";
|
||||
// TODO warn if delta.action != "remove" ?
|
||||
|
||||
return {
|
||||
row: deltaStart.row,
|
||||
column: deltaStart.column
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the anchor position to the specified row and column. If `noClip` is `true`, the position is not clipped.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue