mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 11:08:03 +08:00
@@ -99,7 +99,7 @@ class _CupertinoTextFieldSelectionGestureDetectorBuilder
|
||||
// this handler. If the clear button widget recognizes the up event,
|
||||
// then do not handle it.
|
||||
if (_state._clearGlobalKey.currentContext != null) {
|
||||
final RenderBox renderBox =
|
||||
final renderBox =
|
||||
_state._clearGlobalKey.currentContext!.findRenderObject()!
|
||||
as RenderBox;
|
||||
final Offset localOffset = renderBox.globalToLocal(
|
||||
@@ -1482,6 +1482,7 @@ class _CupertinoRichTextFieldState extends State<CupertinoRichTextField>
|
||||
child: _BaselineAlignedStack(
|
||||
placeholder: placeholder,
|
||||
editableText: editableText,
|
||||
textAlignVertical: _textAlignVertical,
|
||||
editableTextBaseline:
|
||||
textStyle.textBaseline ?? TextBaseline.alphabetic,
|
||||
placeholderBaseline:
|
||||
@@ -1555,11 +1556,11 @@ class _CupertinoRichTextFieldState extends State<CupertinoRichTextField>
|
||||
}
|
||||
|
||||
final bool enabled = widget.enabled;
|
||||
final Offset cursorOffset = Offset(
|
||||
final cursorOffset = Offset(
|
||||
_iOSHorizontalCursorOffsetPixels / MediaQuery.devicePixelRatioOf(context),
|
||||
0,
|
||||
);
|
||||
final List<TextInputFormatter> formatters = <TextInputFormatter>[
|
||||
final formatters = <TextInputFormatter>[
|
||||
...?widget.inputFormatters,
|
||||
if (widget.maxLength != null)
|
||||
LengthLimitingTextInputFormatter(
|
||||
@@ -1617,7 +1618,7 @@ class _CupertinoRichTextFieldState extends State<CupertinoRichTextField>
|
||||
);
|
||||
|
||||
final BoxBorder? border = widget.decoration?.border;
|
||||
Border? resolvedBorder = border as Border?;
|
||||
var resolvedBorder = border as Border?;
|
||||
if (border is Border) {
|
||||
BorderSide resolveBorderSide(BorderSide side) {
|
||||
return side == BorderSide.none
|
||||
@@ -1828,14 +1829,16 @@ class _BaselineAlignedStack
|
||||
const _BaselineAlignedStack({
|
||||
required this.editableTextBaseline,
|
||||
required this.placeholderBaseline,
|
||||
required this.textAlignVertical,
|
||||
required this.editableText,
|
||||
this.placeholder,
|
||||
});
|
||||
|
||||
final TextBaseline editableTextBaseline;
|
||||
final TextBaseline placeholderBaseline;
|
||||
final Widget? placeholder;
|
||||
final TextAlignVertical textAlignVertical;
|
||||
final Widget editableText;
|
||||
final Widget? placeholder;
|
||||
|
||||
@override
|
||||
Iterable<_BaselineAlignedStackSlot> get slots =>
|
||||
@@ -1852,6 +1855,7 @@ class _BaselineAlignedStack
|
||||
@override
|
||||
_RenderBaselineAlignedStack createRenderObject(BuildContext context) {
|
||||
return _RenderBaselineAlignedStack(
|
||||
textAlignVertical: textAlignVertical,
|
||||
editableTextBaseline: editableTextBaseline,
|
||||
placeholderBaseline: placeholderBaseline,
|
||||
);
|
||||
@@ -1863,6 +1867,7 @@ class _BaselineAlignedStack
|
||||
_RenderBaselineAlignedStack renderObject,
|
||||
) {
|
||||
renderObject
|
||||
..textAlignVertical = textAlignVertical
|
||||
..editableTextBaseline = editableTextBaseline
|
||||
..placeholderBaseline = placeholderBaseline;
|
||||
}
|
||||
@@ -1878,11 +1883,23 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
RenderBox
|
||||
> {
|
||||
_RenderBaselineAlignedStack({
|
||||
required TextAlignVertical textAlignVertical,
|
||||
required TextBaseline editableTextBaseline,
|
||||
required TextBaseline placeholderBaseline,
|
||||
}) : _editableTextBaseline = editableTextBaseline,
|
||||
}) : _textAlignVertical = textAlignVertical,
|
||||
_editableTextBaseline = editableTextBaseline,
|
||||
_placeholderBaseline = placeholderBaseline;
|
||||
|
||||
TextAlignVertical get textAlignVertical => _textAlignVertical;
|
||||
TextAlignVertical _textAlignVertical;
|
||||
set textAlignVertical(TextAlignVertical value) {
|
||||
if (_textAlignVertical == value) {
|
||||
return;
|
||||
}
|
||||
_textAlignVertical = value;
|
||||
markNeedsLayout();
|
||||
}
|
||||
|
||||
TextBaseline get editableTextBaseline => _editableTextBaseline;
|
||||
TextBaseline _editableTextBaseline;
|
||||
set editableTextBaseline(TextBaseline value) {
|
||||
@@ -1960,9 +1977,9 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
final RenderBox? placeholder = _placeholderChild;
|
||||
final RenderBox editableText = _editableTextChild;
|
||||
|
||||
final _BaselineAlignedStackParentData editableTextParentData =
|
||||
final editableTextParentData =
|
||||
editableText.parentData! as _BaselineAlignedStackParentData;
|
||||
final _BaselineAlignedStackParentData? placeholderParentData =
|
||||
final placeholderParentData =
|
||||
placeholder?.parentData as _BaselineAlignedStackParentData?;
|
||||
|
||||
size = _computeSize(
|
||||
@@ -1979,13 +1996,17 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
);
|
||||
|
||||
assert(placeholder != null || placeholderBaselineValue == null);
|
||||
final double placeholderY = placeholderBaselineValue != null
|
||||
? editableTextBaselineValue - placeholderBaselineValue
|
||||
: 0.0;
|
||||
final Offset baselineDiff = placeholderBaselineValue != null
|
||||
? Offset(0.0, editableTextBaselineValue - placeholderBaselineValue)
|
||||
: Offset.zero;
|
||||
final verticalAlignment = Alignment(0.0, textAlignVertical.y);
|
||||
|
||||
final double offsetYAdjustment = math.max(0, placeholderY);
|
||||
editableTextParentData.offset = Offset(0, offsetYAdjustment);
|
||||
placeholderParentData?.offset = Offset(0, placeholderY + offsetYAdjustment);
|
||||
editableTextParentData.offset = verticalAlignment.alongOffset(
|
||||
size - editableText.size as Offset,
|
||||
);
|
||||
// Baseline-align the placeholder to the editable text.
|
||||
placeholderParentData?.offset =
|
||||
editableTextParentData.offset + baselineDiff;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -1994,12 +2015,12 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
final RenderBox editableText = _editableTextChild;
|
||||
|
||||
if (placeholder != null) {
|
||||
final _BaselineAlignedStackParentData placeholderParentData =
|
||||
final placeholderParentData =
|
||||
placeholder.parentData! as _BaselineAlignedStackParentData;
|
||||
context.paintChild(placeholder, offset + placeholderParentData.offset);
|
||||
}
|
||||
|
||||
final _BaselineAlignedStackParentData editableTextParentData =
|
||||
final editableTextParentData =
|
||||
editableText.parentData! as _BaselineAlignedStackParentData;
|
||||
context.paintChild(editableText, offset + editableTextParentData.offset);
|
||||
}
|
||||
@@ -2054,7 +2075,7 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
|
||||
height = math.max(height, editableTextSize.height);
|
||||
width = math.max(width, editableTextSize.width);
|
||||
final Size size = Size(width, height);
|
||||
final size = Size(width, height);
|
||||
assert(size.isFinite);
|
||||
return constraints.constrain(size);
|
||||
}
|
||||
@@ -2062,7 +2083,7 @@ class _RenderBaselineAlignedStack extends RenderBox
|
||||
@override
|
||||
bool hitTestChildren(BoxHitTestResult result, {required Offset position}) {
|
||||
final RenderBox editableText = _editableTextChild;
|
||||
final _BaselineAlignedStackParentData editableTextParentData =
|
||||
final editableTextParentData =
|
||||
editableText.parentData! as _BaselineAlignedStackParentData;
|
||||
|
||||
return result.addWithPaintOffset(
|
||||
|
||||
Reference in New Issue
Block a user