fix undo selection range after delete
This commit is contained in:
parent
0ba027c8bf
commit
09d0044e1e
1 changed files with 6 additions and 1 deletions
|
|
@ -1216,7 +1216,7 @@ var EditSession = function(text, mode) {
|
||||||
var range, point;
|
var range, point;
|
||||||
var lastDeltaIsInsert = false;
|
var lastDeltaIsInsert = false;
|
||||||
if (isInsert(delta)) {
|
if (isInsert(delta)) {
|
||||||
range = delta.range.clone();
|
range = Range.fromPoints(delta.range.start, delta.range.end);
|
||||||
lastDeltaIsInsert = true;
|
lastDeltaIsInsert = true;
|
||||||
} else {
|
} else {
|
||||||
range = Range.fromPoints(delta.range.start, delta.range.start);
|
range = Range.fromPoints(delta.range.start, delta.range.start);
|
||||||
|
|
@ -1248,6 +1248,11 @@ var EditSession = function(text, mode) {
|
||||||
// Check if this range and the last undo range has something in common.
|
// Check if this range and the last undo range has something in common.
|
||||||
// If true, merge the ranges.
|
// If true, merge the ranges.
|
||||||
if (lastUndoRange != null) {
|
if (lastUndoRange != null) {
|
||||||
|
if (Range.comparePoints(lastUndoRange.start, range.start) == 0) {
|
||||||
|
lastUndoRange.start.column += range.end.column - range.start.column;
|
||||||
|
lastUndoRange.end.column += range.end.column - range.start.column;
|
||||||
|
}
|
||||||
|
|
||||||
var cmp = lastUndoRange.compareRange(range);
|
var cmp = lastUndoRange.compareRange(range);
|
||||||
if (cmp == 1) {
|
if (cmp == 1) {
|
||||||
range.setStart(lastUndoRange.start);
|
range.setStart(lastUndoRange.start);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue