Merge pull request #1261 from LivelyKernel/fix-onPaste-command-multiselect
Fix onPaste when it is used in a command and multiselect is active
This commit is contained in:
commit
f7e17a7c38
2 changed files with 43 additions and 25 deletions
|
|
@ -523,7 +523,7 @@ var Editor = require("./editor").Editor;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
this._emit("paste", text);
|
this._emit("paste", text);
|
||||||
if (!this.inMultiSelectMode)
|
if (!this.inMultiSelectMode || this.inVirtualSelectionMode)
|
||||||
return this.insert(text);
|
return this.insert(text);
|
||||||
|
|
||||||
var lines = text.split(/\r\n|\r|\n/);
|
var lines = text.split(/\r\n|\r|\n/);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ var Range = require("./range").Range;
|
||||||
var assert = require("./test/assertions");
|
var assert = require("./test/assertions");
|
||||||
var MultiSelect = require("./multi_select").MultiSelect;
|
var MultiSelect = require("./multi_select").MultiSelect;
|
||||||
|
|
||||||
var editor
|
var editor;
|
||||||
var exec = function(name, times, args) {
|
var exec = function(name, times, args) {
|
||||||
do {
|
do {
|
||||||
editor.commands.exec(name, editor, args);
|
editor.commands.exec(name, editor, args);
|
||||||
|
|
@ -153,6 +153,24 @@ module.exports = {
|
||||||
var range4 = new Range(0, 0, 4, 0);
|
var range4 = new Range(0, 0, 4, 0);
|
||||||
selection.addRange(range4);
|
selection.addRange(range4);
|
||||||
assert.ok(!editor.inMultiSelectMode);
|
assert.ok(!editor.inMultiSelectMode);
|
||||||
|
},
|
||||||
|
|
||||||
|
"test: onPaste in command with multiselect": function() {
|
||||||
|
var doc = new EditSession(["l1", "l2"]);
|
||||||
|
editor = new Editor(new MockRenderer(), doc);
|
||||||
|
MultiSelect(editor);
|
||||||
|
editor.commands.addCommand({
|
||||||
|
name: 'insertfoo',
|
||||||
|
exec: function(ed) { ed.onPaste('foo'); },
|
||||||
|
multiSelectAction: "forEach"
|
||||||
|
});
|
||||||
|
var selection = editor.selection;
|
||||||
|
var range1 = new Range(0,2,0,2);
|
||||||
|
var range2 = new Range(1,2,1,2);
|
||||||
|
selection.fromOrientedRange(range1)
|
||||||
|
selection.addRange(range2);
|
||||||
|
editor.execCommand('insertfoo');
|
||||||
|
assert.equal('l1foo\nl2foo', editor.getValue());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue