From c4f321b71eee416ecea483cdf635706b3e8e0d50 Mon Sep 17 00:00:00 2001 From: Evan Stade Date: Tue, 7 Mar 2017 16:40:51 -0700 Subject: [PATCH] Add a 1px border stroke to the shelf button active app indicator. BUG=670970 Review-Url: https://codereview.chromium.org/2724403005 Cr-Commit-Position: refs/heads/master@{#454741} (cherry picked from commit 7367db27e8ba876cd256abe839deda4078a32d9d) Review-Url: https://codereview.chromium.org/2736973003 . Cr-Commit-Position: refs/branch-heads/3029@{#52} Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471} --- ash/common/shelf/shelf_button.cc | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/ash/common/shelf/shelf_button.cc b/ash/common/shelf/shelf_button.cc index b39fa9c2f785d..d5d32ff71833d 100644 --- a/ash/common/shelf/shelf_button.cc +++ b/ash/common/shelf/shelf_button.cc @@ -32,7 +32,7 @@ namespace { const int kIconSize = 32; const int kAttentionThrobDurationMS = 800; const int kMaxAnimationSeconds = 10; -const int kIndicatorOffsetFromBottom = 2; +const int kIndicatorOffsetFromBottom = 3; const int kIndicatorRadiusDip = 2; const SkColor kIndicatorColor = SK_ColorWHITE; @@ -146,11 +146,23 @@ class ShelfButton::AppStatusIndicatorView DCHECK_EQ(width(), height()); DCHECK_EQ(kIndicatorRadiusDip, width() / 2); + const float dsf = canvas->UndoDeviceScaleFactor(); + const int kStrokeWidthPx = 1; + gfx::PointF center = gfx::RectF(GetLocalBounds()).CenterPoint(); + center.Scale(dsf); + + // Fill the center. cc::PaintFlags flags; flags.setColor(kIndicatorColor); flags.setFlags(cc::PaintFlags::kAntiAlias_Flag); - canvas->DrawCircle(gfx::Point(width() / 2, height() / 2), - kIndicatorRadiusDip, flags); + canvas->DrawCircle(center, dsf * kIndicatorRadiusDip - kStrokeWidthPx, + flags); + + // Stroke the border. + flags.setColor(SkColorSetA(SK_ColorBLACK, 0x4D)); + flags.setStyle(SkPaint::kStroke_Style); + canvas->DrawCircle( + center, dsf * kIndicatorRadiusDip - kStrokeWidthPx / 2.0f, flags); } // ShelfButtonAnimation::Observer