This commit is contained in:
Vadim Lopatin 2014-04-24 19:54:15 +04:00
parent 5afa935930
commit 7aca03e94f
1 changed files with 18 additions and 8 deletions

View File

@ -461,14 +461,24 @@ class EditableContent {
for (int i = after.start.line; i <= after.end.line; i++) { for (int i = after.start.line; i <= after.end.line; i++) {
dstring newline = newContent[i - after.start.line]; dstring newline = newContent[i - after.start.line];
if (i == after.start.line && i == after.end.line) { if (i == after.start.line && i == after.end.line) {
dchar[] buf;
buf ~= firstLineHead;
buf ~= newline;
buf ~= lastLineTail;
//Log.d("merging lines ", firstLineHead, " ", newline, " ", lastLineTail); //Log.d("merging lines ", firstLineHead, " ", newline, " ", lastLineTail);
_lines[i] = (firstLineHead ~ newline ~ lastLineTail).dup; _lines[i] = cast(dstring)buf;
//Log.d("merge result: ", _lines[i]); //Log.d("merge result: ", _lines[i]);
} else if (i == after.start.line) } else if (i == after.start.line) {
_lines[i] = (firstLineHead ~ newline).dup; dchar[] buf;
else if (i == after.end.line) buf ~= firstLineHead;
_lines[i] = (newline ~ lastLineTail).dup; buf ~= newline;
else _lines[i] = cast(dstring)buf;
} else if (i == after.end.line) {
dchar[] buf;
buf ~= newline;
buf ~= lastLineTail;
_lines[i] = cast(dstring)buf;
} else
_lines[i] = newline; // no dup needed _lines[i] = newline; // no dup needed
} }
} }
@ -1172,8 +1182,8 @@ class EditWidgetBase : WidgetGroup, EditableContentListener {
protected bool removeRangeText(TextRange range) { protected bool removeRangeText(TextRange range) {
if (range.empty) if (range.empty)
return false; return false;
//_selectionRange = range; _selectionRange = range;
//_caretPos = _selectionRange.end; _caretPos = _selectionRange.start;
EditOperation op = new EditOperation(EditAction.Replace, range, [""d]); EditOperation op = new EditOperation(EditAction.Replace, range, [""d]);
_content.performOperation(op, this); _content.performOperation(op, this);
//_selectionRange.start = _caretPos; //_selectionRange.start = _caretPos;