renderObject in TextSelection is not nullable

pull/630/head
X Code 3 years ago
parent b3c627f7a9
commit 6530680869
  1. 26
      lib/src/widgets/text_selection.dart

@ -127,7 +127,7 @@ class EditorTextSelectionOverlay {
final LayerLink endHandleLayerLink; final LayerLink endHandleLayerLink;
/// The editable line in which the selected text is being displayed. /// The editable line in which the selected text is being displayed.
final RenderEditor? renderObject; final RenderEditor renderObject;
/// Builds text selection handles and toolbar. /// Builds text selection handles and toolbar.
final TextSelectionControls selectionCtrls; final TextSelectionControls selectionCtrls;
@ -308,16 +308,16 @@ class EditorTextSelectionOverlay {
Widget _buildToolbar(BuildContext context) { Widget _buildToolbar(BuildContext context) {
// Find the horizontal midpoint, just above the selected text. // Find the horizontal midpoint, just above the selected text.
final endpoints = renderObject!.getEndpointsForSelection(_selection); final endpoints = renderObject.getEndpointsForSelection(_selection);
final editingRegion = Rect.fromPoints( final editingRegion = Rect.fromPoints(
renderObject!.localToGlobal(Offset.zero), renderObject.localToGlobal(Offset.zero),
renderObject!.localToGlobal(renderObject!.size.bottomRight(Offset.zero)), renderObject.localToGlobal(renderObject.size.bottomRight(Offset.zero)),
); );
final baseLineHeight = renderObject!.preferredLineHeight(_selection.base); final baseLineHeight = renderObject.preferredLineHeight(_selection.base);
final extentLineHeight = final extentLineHeight =
renderObject!.preferredLineHeight(_selection.extent); renderObject.preferredLineHeight(_selection.extent);
final smallestLineHeight = math.min(baseLineHeight, extentLineHeight); final smallestLineHeight = math.min(baseLineHeight, extentLineHeight);
final isMultiline = endpoints.last.point.dy - endpoints.first.point.dy > final isMultiline = endpoints.last.point.dy - endpoints.first.point.dy >
smallestLineHeight / 2; smallestLineHeight / 2;
@ -420,7 +420,7 @@ class _TextSelectionHandleOverlay extends StatefulWidget {
final _TextSelectionHandlePosition position; final _TextSelectionHandlePosition position;
final LayerLink startHandleLayerLink; final LayerLink startHandleLayerLink;
final LayerLink endHandleLayerLink; final LayerLink endHandleLayerLink;
final RenderEditor? renderObject; final RenderEditor renderObject;
final ValueChanged<TextSelection?> onSelectionHandleChanged; final ValueChanged<TextSelection?> onSelectionHandleChanged;
final VoidCallback? onSelectionHandleTapped; final VoidCallback? onSelectionHandleTapped;
final TextSelectionControls selectionControls; final TextSelectionControls selectionControls;
@ -433,9 +433,9 @@ class _TextSelectionHandleOverlay extends StatefulWidget {
ValueListenable<bool> get _visibility { ValueListenable<bool> get _visibility {
switch (position) { switch (position) {
case _TextSelectionHandlePosition.START: case _TextSelectionHandlePosition.START:
return renderObject!.selectionStartInViewport; return renderObject.selectionStartInViewport;
case _TextSelectionHandlePosition.END: case _TextSelectionHandlePosition.END:
return renderObject!.selectionEndInViewport; return renderObject.selectionEndInViewport;
default: default:
throw 'Invalid position'; throw 'Invalid position';
} }
@ -491,7 +491,7 @@ class _TextSelectionHandleOverlayState
void _handleDragUpdate(DragUpdateDetails details) { void _handleDragUpdate(DragUpdateDetails details) {
_dragPosition += details.delta; _dragPosition += details.delta;
final position = widget.renderObject!.getPositionForOffset(_dragPosition); final position = widget.renderObject.getPositionForOffset(_dragPosition);
if (widget.selection.isCollapsed) { if (widget.selection.isCollapsed) {
widget.onSelectionHandleChanged(TextSelection.fromPosition(position)); widget.onSelectionHandleChanged(TextSelection.fromPosition(position));
return; return;
@ -541,7 +541,7 @@ class _TextSelectionHandleOverlayState
case _TextSelectionHandlePosition.START: case _TextSelectionHandlePosition.START:
layerLink = widget.startHandleLayerLink; layerLink = widget.startHandleLayerLink;
type = _chooseType( type = _chooseType(
widget.renderObject!.textDirection, widget.renderObject.textDirection,
TextSelectionHandleType.left, TextSelectionHandleType.left,
TextSelectionHandleType.right, TextSelectionHandleType.right,
); );
@ -550,7 +550,7 @@ class _TextSelectionHandleOverlayState
assert(!widget.selection.isCollapsed); assert(!widget.selection.isCollapsed);
layerLink = widget.endHandleLayerLink; layerLink = widget.endHandleLayerLink;
type = _chooseType( type = _chooseType(
widget.renderObject!.textDirection, widget.renderObject.textDirection,
TextSelectionHandleType.right, TextSelectionHandleType.right,
TextSelectionHandleType.left, TextSelectionHandleType.left,
); );
@ -560,7 +560,7 @@ class _TextSelectionHandleOverlayState
final textPosition = widget.position == _TextSelectionHandlePosition.START final textPosition = widget.position == _TextSelectionHandlePosition.START
? widget.selection.base ? widget.selection.base
: widget.selection.extent; : widget.selection.extent;
final lineHeight = widget.renderObject!.preferredLineHeight(textPosition); final lineHeight = widget.renderObject.preferredLineHeight(textPosition);
final handleAnchor = final handleAnchor =
widget.selectionControls.getHandleAnchor(type!, lineHeight); widget.selectionControls.getHandleAnchor(type!, lineHeight);
final handleSize = widget.selectionControls.getHandleSize(lineHeight); final handleSize = widget.selectionControls.getHandleSize(lineHeight);

Loading…
Cancel
Save