Index: Source/core/rendering/RenderMediaControls.cpp |
diff --git a/Source/core/rendering/RenderMediaControls.cpp b/Source/core/rendering/RenderMediaControls.cpp |
index 9124b8745353b370af37ff92ec7b038d568e2168..71201e55f60a06a5740aad77f1200f1d3015c82c 100644 |
--- a/Source/core/rendering/RenderMediaControls.cpp |
+++ b/Source/core/rendering/RenderMediaControls.cpp |
@@ -345,15 +345,24 @@ static bool paintMediaCastButton(RenderObject* object, const PaintInfo& paintInf |
if (!mediaElement) |
return false; |
- static Image* mediaCastOnButton = platformResource("mediaplayerCastOn"); |
- static Image* mediaCastOffButton = platformResource("mediaplayerCastOff"); |
+ static Image* mediaCastOn = platformResource("mediaplayerCastOn"); |
+ static Image* mediaCastOff = platformResource("mediaplayerCastOff"); |
+ // To ensure that the overlaid cast button is visible when overlaid on pale videos we use a |
+ // different version of it for the overlaid case with a semi-opaque background. |
+ static Image* mediaOverlayCastOff = platformResource("mediaplayerOverlayCastOff"); |
- if (mediaElement->isPlayingRemotely()) { |
- return paintMediaButton(paintInfo.context, rect, mediaCastOnButton); |
+ switch (mediaControlElementType(object->node())) { |
+ case MediaCastOnButton: |
+ case MediaOverlayCastOnButton: |
+ return paintMediaButton(paintInfo.context, rect, mediaCastOn); |
+ case MediaCastOffButton: |
+ return paintMediaButton(paintInfo.context, rect, mediaCastOff); |
+ case MediaOverlayCastOffButton: |
+ return paintMediaButton(paintInfo.context, rect, mediaOverlayCastOff); |
+ default: |
+ ASSERT_NOT_REACHED(); |
+ return false; |
} |
- |
- return paintMediaButton(paintInfo.context, rect, mediaCastOffButton); |
- |
} |
bool RenderMediaControls::paintMediaControlsPart(MediaControlElementType part, RenderObject* object, const PaintInfo& paintInfo, const IntRect& rect) |