Unverified Commit 275ec45e authored by Bogdan Lukin's avatar Bogdan Lukin Committed by GitHub

fix material selection handle paint with transparent textSelectionHandleColor (#49830)

parent b2a27c10
......@@ -120,8 +120,10 @@ class _TextSelectionHandlePainter extends CustomPainter {
void paint(Canvas canvas, Size size) {
final Paint paint = Paint()..color = color;
final double radius = size.width/2.0;
canvas.drawCircle(Offset(radius, radius), radius, paint);
canvas.drawRect(Rect.fromLTWH(0.0, 0.0, radius, radius), paint);
final Rect circle = Rect.fromCircle(center: Offset(radius, radius), radius: radius);
final Rect point = Rect.fromLTWH(0.0, 0.0, radius, radius);
final Path path = Path()..addOval(circle)..addRect(point);
canvas.drawPath(path, paint);
}
@override
......
......@@ -62,4 +62,39 @@ void main() {
expect(materialTextSelectionControls.canSelectAll(key.currentState), false);
});
});
group('material handles', () {
testWidgets('draws transparent handle correctly', (WidgetTester tester) async {
await tester.pumpWidget(RepaintBoundary(
child: Theme(
data: ThemeData(
textSelectionHandleColor: const Color(0x550000AA),
),
isMaterialAppTheme: true,
child: Builder(
builder: (BuildContext context) {
return Container(
color: Colors.white,
height: 800,
width: 800,
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 250),
child: FittedBox(
child: materialTextSelectionControls.buildHandle(
context, TextSelectionHandleType.right, 10.0,
),
),
),
);
},
),
),
));
await expectLater(
find.byType(RepaintBoundary),
matchesGoldenFile('transparent_handle.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