summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorpkasting <pkasting@chromium.org>2015-10-13 19:19:02 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-14 02:20:08 +0000
commit0ca0ebd49346783db18dd53c493c1e39a93826bc (patch)
treef5c0937d127df0fd77c5a5df6cabd2e1b5ddc7ad /ash
parent179e89659c89c0f738286374e6084b77c8c82c14 (diff)
downloadchromium_src-0ca0ebd49346783db18dd53c493c1e39a93826bc.zip
chromium_src-0ca0ebd49346783db18dd53c493c1e39a93826bc.tar.gz
chromium_src-0ca0ebd49346783db18dd53c493c1e39a93826bc.tar.bz2
Add a Canvas::SaveAndUnscale() method for pixel-accurate drawing.
This will be useful for various Material Design implementation bits. BUG=none TEST=none Review URL: https://codereview.chromium.org/1393013007 Cr-Commit-Position: refs/heads/master@{#353946}
Diffstat (limited to 'ash')
-rw-r--r--ash/frame/default_header_painter.cc17
1 files changed, 6 insertions, 11 deletions
diff --git a/ash/frame/default_header_painter.cc b/ash/frame/default_header_painter.cc
index a80a3c6..ab9dd18 100644
--- a/ash/frame/default_header_painter.cc
+++ b/ash/frame/default_header_painter.cc
@@ -262,18 +262,13 @@ void DefaultHeaderPainter::PaintTitleBar(gfx::Canvas* canvas) {
}
void DefaultHeaderPainter::PaintHeaderContentSeparator(gfx::Canvas* canvas) {
- SkColor color = (mode_ == MODE_ACTIVE) ?
- kHeaderContentSeparatorColor :
- kHeaderContentSeparatorInactiveColor;
-
+ const float scale = canvas->SaveAndUnscale();
+ gfx::RectF rect(0, painted_height_ * scale - 1, view_->width() * scale, 1);
SkPaint paint;
- paint.setColor(color);
- // Draw the line as 1px thick regardless of scale factor.
- paint.setStrokeWidth(0);
-
- float thickness = 1 / canvas->image_scale();
- SkScalar y = SkIntToScalar(painted_height_) - SkFloatToScalar(thickness);
- canvas->sk_canvas()->drawLine(0, y, SkIntToScalar(view_->width()), y, paint);
+ paint.setColor((mode_ == MODE_ACTIVE) ?
+ kHeaderContentSeparatorColor : kHeaderContentSeparatorInactiveColor);
+ canvas->sk_canvas()->drawRect(gfx::RectFToSkRect(rect), paint);
+ canvas->Restore();
}
void DefaultHeaderPainter::LayoutLeftHeaderView() {