fix delta events
This commit is contained in:
parent
7ccd377f13
commit
87bfb14552
1 changed files with 9 additions and 4 deletions
|
|
@ -44,6 +44,8 @@ var Selection = require("ace/selection").Selection;
|
|||
var TextMode = require("ace/mode/text").Mode;
|
||||
var Range = require("ace/range").Range;
|
||||
|
||||
var NO_CHANGE_DELTAS = {};
|
||||
|
||||
var Document = function(text, mode) {
|
||||
|
||||
this.modified = true;
|
||||
|
|
@ -511,17 +513,20 @@ var Document = function(text, mode) {
|
|||
args.push.apply(args, lines);
|
||||
this.$lines.splice.apply(this.$lines, args);
|
||||
|
||||
var nl = this.$getNewLineCharacter();
|
||||
var delta = {
|
||||
action: "insertText",
|
||||
range: new Range(row, 0, row + lines.length, 0),
|
||||
text: lines.join(nl) + nl
|
||||
};
|
||||
if (!fromUndo && this.$undoManager) {
|
||||
var nl = this.$getNewLineCharacter();
|
||||
this.$deltas.push(delta);
|
||||
this.$informUndoManager.schedule();
|
||||
}
|
||||
this._dispatchEvent("changeDelta", { data: delta });
|
||||
|
||||
if (fromUndo !== NO_CHANGE_DELTAS) {
|
||||
this._dispatchEvent("changeDelta", { data: delta });
|
||||
}
|
||||
},
|
||||
|
||||
this.$insert = function(position, text, fromUndo) {
|
||||
|
|
@ -561,10 +566,10 @@ var Document = function(text, mode) {
|
|||
var lastLine = newLines[newLines.length - 1] + line.substring(position.column);
|
||||
|
||||
this.$lines[position.row] = firstLine;
|
||||
this.$insertLines(position.row + 1, [lastLine], true);
|
||||
this.$insertLines(position.row + 1, [lastLine], NO_CHANGE_DELTAS);
|
||||
|
||||
if (newLines.length > 2) {
|
||||
this.$insertLines(position.row + 1, newLines.slice(1, -1), true);
|
||||
this.$insertLines(position.row + 1, newLines.slice(1, -1), NO_CHANGE_DELTAS);
|
||||
}
|
||||
|
||||
var end = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue