Fixed new lines in paste data

This commit is contained in:
benweet 2014-06-09 12:58:18 +01:00
parent b2f2734533
commit 4d97ba5f84

View File

@ -175,12 +175,12 @@ define([
this.updateSelectionRange = function() { this.updateSelectionRange = function() {
var min = Math.min(this.selectionStart, this.selectionEnd); var min = Math.min(this.selectionStart, this.selectionEnd);
var max = Math.max(this.selectionStart, this.selectionEnd); var max = Math.max(this.selectionStart, this.selectionEnd);
var range = this.createRange(min, max); var range = this.createRange(min, max);
var selection = rangy.getSelection(); var selection = rangy.getSelection();
selection.removeAllRanges(); selection.removeAllRanges();
selection.addRange(range, this.selectionStart > this.selectionEnd); selection.addRange(range, this.selectionStart > this.selectionEnd);
selection.detach(); selection.detach();
range.detach(); range.detach();
}; };
this.setSelectionStartEnd = function(start, end) { this.setSelectionStartEnd = function(start, end) {
if(start === undefined) { if(start === undefined) {
@ -232,13 +232,14 @@ define([
selectionEnd = offset + (range + '').length; selectionEnd = offset + (range + '').length;
} }
} }
selectionRange.detach(); selectionRange.detach();
} }
selection.detach(); selection.detach();
self.setSelectionStartEnd(selectionStart, selectionEnd); self.setSelectionStartEnd(selectionStart, selectionEnd);
} }
undoMgr.saveSelectionState(); undoMgr.saveSelectionState();
} }
var nextTickAdjustScroll = false; var nextTickAdjustScroll = false;
var debouncedSave = utils.debounce(function() { var debouncedSave = utils.debounce(function() {
save(); save();
@ -353,7 +354,7 @@ define([
var range = selectionMgr.createRange(startOffset, textContent.length - endOffset); var range = selectionMgr.createRange(startOffset, textContent.length - endOffset);
range.deleteContents(); range.deleteContents();
range.insertNode(document.createTextNode(replacement)); range.insertNode(document.createTextNode(replacement));
range.detach(); range.detach();
} }
editor.setValue = setValue; editor.setValue = setValue;
@ -369,7 +370,7 @@ define([
} }
range.deleteContents(); range.deleteContents();
range.insertNode(document.createTextNode(replacement)); range.insertNode(document.createTextNode(replacement));
range.detach(); range.detach();
offset = offset - text.length + replacement.length; offset = offset - text.length + replacement.length;
selectionMgr.setSelectionStartEnd(offset, offset); selectionMgr.setSelectionStartEnd(offset, offset);
selectionMgr.updateSelectionRange(); selectionMgr.updateSelectionRange();
@ -759,9 +760,18 @@ define([
}, 0); }, 0);
}) })
.on('mouseup', _.bind(selectionMgr.saveSelectionState, selectionMgr, true, false)) .on('mouseup', _.bind(selectionMgr.saveSelectionState, selectionMgr, true, false))
.on('paste', function() { .on('paste', function(evt) {
undoMgr.currentMode = 'paste'; undoMgr.currentMode = 'paste';
adjustCursorPosition(); adjustCursorPosition();
try {
var data = evt.originalEvent.clipboardData.getData("text/plain");
if(data) {
evt.preventDefault();
document.execCommand("insertHTML", false, data);
}
}
catch(e) {
}
}) })
.on('cut', function() { .on('cut', function() {
undoMgr.currentMode = 'cut'; undoMgr.currentMode = 'cut';