Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1122)

Unified Diff: Source/core/html/shadow/MediaControls.cpp

Issue 453493002: Improve detection of touch events when hiding media controls. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@autoHideControls
Patch Set: Revert Patch Set 8 Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/shadow/MediaControls.h ('k') | Source/core/inspector/InspectorInputAgent.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/shadow/MediaControls.cpp
diff --git a/Source/core/html/shadow/MediaControls.cpp b/Source/core/html/shadow/MediaControls.cpp
index 5b521ce71d70c41027545b52b1a4ee1b72762158..e0902563327121c6c1485ba52ce6e8ed068356fc 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,8 @@ void MediaControls::exitedFullscreen()
void MediaControls::defaultEventHandler(Event* event)
{
HTMLDivElement::defaultEventHandler(event);
+ m_wasLastEventTouch = event->isTouchEvent() || event->isGestureEvent()
+ || (event->isMouseEvent() && toMouseEvent(event)->fromTouch());
if (event->type() == EventTypeNames::mouseover) {
if (!containsRelatedTarget(event)) {
@@ -409,8 +407,7 @@ void MediaControls::hideMediaControlsTimerFired(Timer<MediaControls>*)
return;
unsigned behaviorFlags = IgnoreFocus | IgnoreVideoHover;
- // FIXME: improve this check, see http://www.crbug.com/401177.
- if (!deviceSupportsMouse(document())) {
+ if (m_wasLastEventTouch) {
behaviorFlags |= IgnoreControlsHover;
}
if (!shouldHideMediaControls(behaviorFlags))
« no previous file with comments | « Source/core/html/shadow/MediaControls.h ('k') | Source/core/inspector/InspectorInputAgent.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698