Index: ui/native_theme/native_theme_aura.cc |
diff --git a/ui/native_theme/native_theme_aura.cc b/ui/native_theme/native_theme_aura.cc |
index 4b6742f795fc1ee9fec0e0ce63f11da37d94c27e..a58674c1474cce435e94788f56baeeed78a25bbe 100644 |
--- a/ui/native_theme/native_theme_aura.cc |
+++ b/ui/native_theme/native_theme_aura.cc |
@@ -32,15 +32,6 @@ namespace { |
// this painting code are defined in overlay_scrollbar_constants_aura.h. |
constexpr int kOverlayScrollbarStrokeWidth = 1; |
constexpr int kOverlayScrollbarMinimumLength = 12; |
-constexpr SkAlpha kOverlayScrollbarAlphaNormal = 0x4D; |
-constexpr SkAlpha kOverlayScrollbarAlphaHovered = 0x80; |
-constexpr SkAlpha kOverlayScrollbarAlphaPressed = 0x80; |
- |
-// Indexed by ScrollbarOverlayColorTheme. |
-constexpr SkColor kOverlayScrollbarThumbColor[] = {SK_ColorBLACK, |
- SK_ColorWHITE}; |
-constexpr SkColor kOverlayScrollbarStrokeColor[] = {SK_ColorWHITE, |
- SK_ColorBLACK}; |
const SkColor kTrackColor = SkColorSetRGB(0xF1, 0xF1, 0xF1); |
@@ -195,35 +186,54 @@ void NativeThemeAura::PaintScrollbarThumb( |
TRACE_EVENT0("blink", "NativeThemeAura::PaintScrollbarThumb"); |
SkAlpha thumb_alpha = SK_AlphaTRANSPARENT; |
- const bool overlay = use_overlay_scrollbars_; |
- switch (state) { |
- case NativeTheme::kDisabled: |
- thumb_alpha = SK_AlphaTRANSPARENT; |
- break; |
- case NativeTheme::kHovered: |
- thumb_alpha = overlay ? kOverlayScrollbarAlphaHovered : 0x4D; |
- break; |
- case NativeTheme::kNormal: |
- thumb_alpha = overlay ? kOverlayScrollbarAlphaNormal : 0x33; |
- break; |
- case NativeTheme::kPressed: |
- thumb_alpha = overlay ? kOverlayScrollbarAlphaPressed : 0x80; |
- break; |
- case NativeTheme::kNumStates: |
- NOTREACHED(); |
- break; |
- } |
- |
gfx::Rect thumb_rect(rect); |
SkColor thumb_color; |
- if (overlay) { |
+ |
+ if (use_overlay_scrollbars_) { |
+ // Constants used for painting overlay scrollbar thumb. |
+ constexpr SkAlpha kOverlayScrollbarFillAlphaNormal = 0x4D; |
+ constexpr SkAlpha kOverlayScrollbarFillAlphaHovered = 0x80; |
+ constexpr SkAlpha kOverlayScrollbarFillAlphaPressed = 0x80; |
+ constexpr SkAlpha kOverlayScrollbarStrokeAlphaNormal = 0x4D; |
+ constexpr SkAlpha kOverlayScrollbarStrokeAlphaHovered = 0x58; |
+ constexpr SkAlpha kOverlayScrollbarStrokeAlphaPressed = 0x80; |
+ |
+ // Indexed by ScrollbarOverlayColorTheme. |
+ constexpr SkColor kOverlayScrollbarThumbColor[] = {SK_ColorBLACK, |
+ SK_ColorWHITE}; |
+ constexpr SkColor kOverlayScrollbarStrokeColor[] = {SK_ColorWHITE, |
+ SK_ColorBLACK}; |
+ |
thumb_color = kOverlayScrollbarThumbColor[theme]; |
+ SkAlpha stroke_alpha = SK_AlphaTRANSPARENT; |
+ switch (state) { |
+ case NativeTheme::kDisabled: |
+ thumb_alpha = SK_AlphaTRANSPARENT; |
+ stroke_alpha = SK_AlphaTRANSPARENT; |
+ break; |
+ case NativeTheme::kHovered: |
+ thumb_alpha = kOverlayScrollbarFillAlphaHovered; |
+ stroke_alpha = kOverlayScrollbarStrokeAlphaHovered; |
+ break; |
+ case NativeTheme::kNormal: |
+ thumb_alpha = kOverlayScrollbarFillAlphaNormal; |
+ stroke_alpha = kOverlayScrollbarStrokeAlphaNormal; |
+ break; |
+ case NativeTheme::kPressed: |
+ thumb_alpha = kOverlayScrollbarFillAlphaPressed; |
+ stroke_alpha = kOverlayScrollbarStrokeAlphaPressed; |
+ break; |
+ case NativeTheme::kNumStates: |
+ NOTREACHED(); |
+ break; |
+ } |
+ |
// In overlay mode, draw a stroke (border). |
constexpr int kStrokeWidth = kOverlayScrollbarStrokeWidth; |
SkPaint paint; |
paint.setColor( |
- SkColorSetA(kOverlayScrollbarStrokeColor[theme], thumb_alpha)); |
+ SkColorSetA(kOverlayScrollbarStrokeColor[theme], stroke_alpha)); |
paint.setStyle(SkPaint::kStroke_Style); |
paint.setStrokeWidth(kStrokeWidth); |
@@ -235,6 +245,23 @@ void NativeThemeAura::PaintScrollbarThumb( |
// Inset the all the edges edges so we fill-in the stroke below. |
thumb_rect.Inset(kStrokeWidth, kStrokeWidth); |
} else { |
+ switch (state) { |
+ case NativeTheme::kDisabled: |
+ thumb_alpha = SK_AlphaTRANSPARENT; |
+ break; |
+ case NativeTheme::kHovered: |
+ thumb_alpha = 0x4D; |
+ break; |
+ case NativeTheme::kNormal: |
+ thumb_alpha = 0x33; |
+ break; |
+ case NativeTheme::kPressed: |
+ thumb_alpha = 0x80; |
+ break; |
+ case NativeTheme::kNumStates: |
+ NOTREACHED(); |
+ break; |
+ } |
// If there are no scrollbuttons then provide some padding so that the thumb |
// doesn't touch the top of the track. |
const int kThumbPadding = 2; |