Index: Source/core/html/shadow/MediaControls.cpp |
diff --git a/Source/core/html/shadow/MediaControls.cpp b/Source/core/html/shadow/MediaControls.cpp |
index dd2e60cb279d4bb50aced4b30eb4f338f6f39214..2adaa56ce9ce982a15a630ff7a4f61053bdf4eff 100644 |
--- a/Source/core/html/shadow/MediaControls.cpp |
+++ b/Source/core/html/shadow/MediaControls.cpp |
@@ -45,11 +45,6 @@ static bool fullscreenIsSupported(const Document& document) |
return !document.settings() || document.settings()->fullscreenSupported(); |
} |
-static bool deviceSupportsMouse(const Document& document) |
-{ |
- return !document.settings() || document.settings()->deviceSupportsMouse(); |
-} |
- |
MediaControls::MediaControls(HTMLMediaElement& mediaElement) |
: HTMLDivElement(mediaElement.document()) |
, m_mediaElement(&mediaElement) |
@@ -69,6 +64,7 @@ MediaControls::MediaControls(HTMLMediaElement& mediaElement) |
, m_hideMediaControlsTimer(this, &MediaControls::hideMediaControlsTimerFired) |
, m_isMouseOverControls(false) |
, m_isPausedForScrubbing(false) |
+ , m_wasLastEventTouch(false) |
{ |
} |
@@ -372,6 +368,7 @@ void MediaControls::exitedFullscreen() |
void MediaControls::defaultEventHandler(Event* event) |
{ |
HTMLDivElement::defaultEventHandler(event); |
+ m_wasLastEventTouch = event->isTouchEvent() || (event->isMouseEvent() && toMouseEvent(event)->derivesFromTouch()); |
if (event->type() == EventTypeNames::mouseover) { |
if (!containsRelatedTarget(event)) { |
@@ -409,8 +406,7 @@ void MediaControls::hideMediaControlsTimerFired(Timer<MediaControls>*) |
return; |
unsigned behaviorFlags = IgnoreFocus | IgnoreVideoHover; |
- // TODO(igsolla): improve this check, see http://www.crbug.com/401177. |
- if (!deviceSupportsMouse(document())) { |
+ if (m_wasLastEventTouch) { |
behaviorFlags |= IgnoreControlsHover; |
} |
if (!shouldHideMediaControls(behaviorFlags)) |