mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-13 22:28:08 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
953fdbb6bc |
@@ -176,7 +176,6 @@ class RichTextItem {
|
||||
|
||||
if (insertionOffset == 0 && range.start == 0) {
|
||||
final insertedLength = delta.textInserted.length;
|
||||
controller.newSelection = TextSelection.collapsed(offset: insertedLength);
|
||||
if (!isRich && delta.isText) {
|
||||
text = delta.textInserted + text;
|
||||
range = TextRange(start: range.start, end: range.start + text.length);
|
||||
@@ -208,7 +207,6 @@ class RichTextItem {
|
||||
|
||||
if (range.end == insertionOffset) {
|
||||
final end = insertionOffset + delta.textInserted.length;
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
if ((isText && delta.isText) || (isComposing && delta.isComposing)) {
|
||||
text += delta.textInserted;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
@@ -232,7 +230,6 @@ class RichTextItem {
|
||||
final leadingText = text.substring(0, insertionOffset - range.start);
|
||||
final trailingString = text.substring(leadingText.length);
|
||||
final insertEnd = insertionOffset + delta.textInserted.length;
|
||||
controller.newSelection = TextSelection.collapsed(offset: insertEnd);
|
||||
if (delta.isText) {
|
||||
text = leadingText + delta.textInserted + trailingString;
|
||||
range = TextRange(
|
||||
@@ -380,9 +377,6 @@ class RichTextItem {
|
||||
);
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(
|
||||
offset: replacedRange.start + delta.replacementText.length,
|
||||
);
|
||||
return null;
|
||||
} else {
|
||||
final leadingText = text.substring(
|
||||
@@ -391,7 +385,6 @@ class RichTextItem {
|
||||
);
|
||||
final trailString = text.substring(replacedRange.end - range.start);
|
||||
final insertEnd = replacedRange.start + delta.replacementText.length;
|
||||
controller.newSelection = TextSelection.collapsed(offset: insertEnd);
|
||||
final config = delta.config;
|
||||
final insertedItem = RichTextItem(
|
||||
type: config.type,
|
||||
@@ -429,7 +422,6 @@ class RichTextItem {
|
||||
id = config.id;
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -443,7 +435,6 @@ class RichTextItem {
|
||||
id = config.id;
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return (remove: false, toAdd: null);
|
||||
}
|
||||
return (remove: true, toAdd: null);
|
||||
@@ -459,7 +450,6 @@ class RichTextItem {
|
||||
);
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return null;
|
||||
} else {
|
||||
text = text.replaceRange(
|
||||
@@ -478,7 +468,6 @@ class RichTextItem {
|
||||
id: config.id,
|
||||
range: TextRange(start: replacedRange.start, end: end),
|
||||
);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return (remove: false, toAdd: [insertedItem]);
|
||||
}
|
||||
}
|
||||
@@ -489,7 +478,6 @@ class RichTextItem {
|
||||
id = config.id;
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -512,7 +500,6 @@ class RichTextItem {
|
||||
);
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return null;
|
||||
} else {
|
||||
final end = range.start + delta.replacementText.length;
|
||||
@@ -525,7 +512,6 @@ class RichTextItem {
|
||||
id: config.id,
|
||||
range: TextRange(start: range.start, end: end),
|
||||
);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
text = text.substring(replacedRange.end - range.start);
|
||||
range = TextRange(start: end, end: end + text.length);
|
||||
return (remove: true, toAdd: [insertedItem]);
|
||||
@@ -538,7 +524,6 @@ class RichTextItem {
|
||||
id = config.id;
|
||||
final end = range.start + text.length;
|
||||
range = TextRange(start: range.start, end: end);
|
||||
controller.newSelection = TextSelection.collapsed(offset: end);
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -613,6 +598,7 @@ class RichTextEditingController extends TextEditingController {
|
||||
onMention?.call();
|
||||
}
|
||||
|
||||
newSelection = delta.selection;
|
||||
if (items.isEmpty) {
|
||||
final config = delta.config;
|
||||
items.add(
|
||||
@@ -624,9 +610,6 @@ class RichTextEditingController extends TextEditingController {
|
||||
id: config.id,
|
||||
),
|
||||
);
|
||||
newSelection = TextSelection.collapsed(
|
||||
offset: delta.textInserted.length,
|
||||
);
|
||||
return;
|
||||
}
|
||||
for (int index = 0; index < items.length; index++) {
|
||||
@@ -652,6 +635,7 @@ class RichTextEditingController extends TextEditingController {
|
||||
}
|
||||
|
||||
case TextEditingDeltaReplacement e:
|
||||
newSelection = delta.selection;
|
||||
for (int index = 0; index < items.length; index++) {
|
||||
final item = items[index];
|
||||
({bool remove, List<RichTextItem>? toAdd})? res = item.onReplace(
|
||||
|
||||
@@ -2627,7 +2627,7 @@ class EditableTextState extends State<EditableText>
|
||||
composing: TextRange.empty,
|
||||
),
|
||||
);
|
||||
final newValue = _value.copyWith(
|
||||
final newValue = TextEditingValue(
|
||||
text: widget.controller.plainText,
|
||||
selection: widget.controller.newSelection,
|
||||
composing: TextRange.empty,
|
||||
@@ -3569,7 +3569,7 @@ class EditableTextState extends State<EditableText>
|
||||
remoteValue = delta.apply(remoteValue);
|
||||
}
|
||||
|
||||
final newValue = _value.copyWith(
|
||||
final newValue = TextEditingValue(
|
||||
text: widget.controller.plainText,
|
||||
selection: widget.controller.newSelection,
|
||||
composing: textEditingDeltas.last.composing,
|
||||
@@ -5552,7 +5552,7 @@ class EditableTextState extends State<EditableText>
|
||||
),
|
||||
);
|
||||
|
||||
final newValue = oldValue.copyWith(
|
||||
final newValue = TextEditingValue(
|
||||
text: widget.controller.plainText,
|
||||
selection: widget.controller.newSelection,
|
||||
composing: TextRange.empty,
|
||||
|
||||
Reference in New Issue
Block a user