Unverified Commit 9e9e7416 authored by Bogdan Lukin's avatar Bogdan Lukin Committed by GitHub

fix cupertino selection handle paint with transparent color (#49910)

parent b24bca13
......@@ -260,26 +260,24 @@ class _TextSelectionHandlePainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
final Paint paint = Paint()
..color = color
..strokeWidth = 2.0;
canvas.drawCircle(
const Offset(_kSelectionHandleRadius, _kSelectionHandleRadius),
_kSelectionHandleRadius,
paint,
const double halfStrokeWidth = 1.0;
final Paint paint = Paint()..color = color;
final Rect circle = Rect.fromCircle(
center: const Offset(_kSelectionHandleRadius, _kSelectionHandleRadius),
radius: _kSelectionHandleRadius,
);
// Draw line so it slightly overlaps the circle.
canvas.drawLine(
final Rect line = Rect.fromPoints(
const Offset(
_kSelectionHandleRadius,
_kSelectionHandleRadius - halfStrokeWidth,
2 * _kSelectionHandleRadius - _kSelectionHandleOverlap,
),
Offset(
_kSelectionHandleRadius,
size.height,
),
paint,
Offset(_kSelectionHandleRadius + halfStrokeWidth, size.height),
);
final Path path = Path()
..addOval(circle)
// Draw line so it slightly overlaps the circle.
..addRect(line);
canvas.drawPath(path, paint);
}
@override
......
......@@ -62,4 +62,40 @@ void main() {
expect(cupertinoTextSelectionControls.canSelectAll(key.currentState), false);
});
});
group('cupertino handles', () {
testWidgets('draws transparent handle correctly', (WidgetTester tester) async {
await tester.pumpWidget(RepaintBoundary(
child: CupertinoTheme(
data: const CupertinoThemeData(
primaryColor: Color(0x550000AA),
),
child: Builder(
builder: (BuildContext context) {
return Container(
color: CupertinoColors.white,
height: 800,
width: 800,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 250),
child: FittedBox(
child: cupertinoTextSelectionControls.buildHandle(
context,
TextSelectionHandleType.right,
10.0,
),
),
),
);
},
),
),
));
await expectLater(
find.byType(RepaintBoundary),
matchesGoldenFile('text_selection.handle.transparent.png'),
);
});
});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment