diff --git a/bin/internal/goldens.version b/bin/internal/goldens.version index 583e6849ab3..a897d02011a 100644 --- a/bin/internal/goldens.version +++ b/bin/internal/goldens.version @@ -1 +1 @@ -df3f713cc47fc4e919d1c5cf52c0543424c26c09 +298b585e6eb2bf51b12cd0ea9261a1b7a83c9a29 diff --git a/packages/flutter/lib/src/cupertino/thumb_painter.dart b/packages/flutter/lib/src/cupertino/thumb_painter.dart index 90642be1f5a..38a5fd8d8e9 100644 --- a/packages/flutter/lib/src/cupertino/thumb_painter.dart +++ b/packages/flutter/lib/src/cupertino/thumb_painter.dart @@ -6,8 +6,6 @@ import 'package:flutter/painting.dart'; import 'colors.dart'; -final MaskFilter _kShadowMaskFilter = new MaskFilter.blur(BlurStyle.normal, BoxShadow.convertRadiusToSigma(1.0)); - /// Paints an iOS-style slider thumb. /// /// Used by [CupertinoSwitch] and [CupertinoSlider]. @@ -16,7 +14,10 @@ class CupertinoThumbPainter { CupertinoThumbPainter({ this.color: CupertinoColors.white, this.shadowColor: const Color(0x2C000000), - }); + }) : _shadowPaint = new BoxShadow( + color: shadowColor, + blurRadius: 1.0, + ).toPaint(); /// The color of the interior of the thumb. final Color color; @@ -24,6 +25,9 @@ class CupertinoThumbPainter { /// The color of the shadow case by the thumb. final Color shadowColor; + /// The paint used to draw the shadow case by the thumb. + final Paint _shadowPaint; + /// Half the default diameter of the thumb. static const double radius = 14.0; @@ -35,17 +39,13 @@ class CupertinoThumbPainter { /// Consider using [radius] and [extension] when deciding how large a /// rectangle to use for the thumb. void paint(Canvas canvas, Rect rect) { - final RRect rrect = new RRect.fromRectAndRadius(rect, new Radius.circular(rect.shortestSide / 2.0)); + final RRect rrect = new RRect.fromRectAndRadius( + rect, + new Radius.circular(rect.shortestSide / 2.0), + ); - final Paint paint = new Paint() - ..color = shadowColor - ..maskFilter = _kShadowMaskFilter; - canvas.drawRRect(rrect, paint); - canvas.drawRRect(rrect.shift(const Offset(0.0, 3.0)), paint); - - paint - ..color = color - ..maskFilter = null; - canvas.drawRRect(rrect, paint); + canvas.drawRRect(rrect, _shadowPaint); + canvas.drawRRect(rrect.shift(const Offset(0.0, 3.0)), _shadowPaint); + canvas.drawRRect(rrect, new Paint()..color = color); } } diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index f46275d06f5..6060a0ccaf8 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart @@ -1600,13 +1600,15 @@ class RenderPhysicalModel extends _RenderPhysicalModelBase { bool paintShadows = true; assert(() { if (debugDisableShadows) { - context.canvas.drawRRect( - offsetRRect, - new Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); + if (elevation > 0.0) { + context.canvas.drawRRect( + offsetRRect, + new Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } paintShadows = false; } return true; @@ -1721,13 +1723,15 @@ class RenderPhysicalShape extends _RenderPhysicalModelBase { bool paintShadows = true; assert(() { if (debugDisableShadows) { - context.canvas.drawPath( - offsetPath, - new Paint() - ..color = shadowColor - ..style = PaintingStyle.stroke - ..strokeWidth = elevation * 2.0, - ); + if (elevation > 0.0) { + context.canvas.drawPath( + offsetPath, + new Paint() + ..color = shadowColor + ..style = PaintingStyle.stroke + ..strokeWidth = elevation * 2.0, + ); + } paintShadows = false; } return true; diff --git a/packages/flutter/lib/src/widgets/banner.dart b/packages/flutter/lib/src/widgets/banner.dart index 30fbc27a1ac..f7f406e72db 100644 --- a/packages/flutter/lib/src/widgets/banner.dart +++ b/packages/flutter/lib/src/widgets/banner.dart @@ -110,7 +110,7 @@ class BannerPainter extends CustomPainter { static const BoxShadow _shadow = const BoxShadow( color: const Color(0x7F000000), - blurRadius: 4.0, + blurRadius: 6.0, ); bool _prepared = false;