mirror of https://github.com/buggins/dlangui.git
fixes
This commit is contained in:
parent
5afa935930
commit
7aca03e94f
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue