diff options
-rw-r--r-- | Source/WebCore/html/HTMLMediaElement.cpp | 22 | ||||
-rw-r--r-- | Source/WebCore/html/HTMLMediaElement.h | 4 |
2 files changed, 24 insertions, 2 deletions
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp index a9f025f..93bd09e 100644 --- a/Source/WebCore/html/HTMLMediaElement.cpp +++ b/Source/WebCore/html/HTMLMediaElement.cpp @@ -79,6 +79,11 @@ #include "Widget.h" #endif +#if PLATFORM(ANDROID) +// For every touch, show the media control for 4 seconds. +#define TOUCH_DELAY 4 +#endif + using namespace std; namespace WebCore { @@ -171,6 +176,9 @@ HTMLMediaElement::HTMLMediaElement(const QualifiedName& tagName, Document* docum , m_dispatchingCanPlayEvent(false) , m_loadInitiatedByUserGesture(false) , m_completelyLoaded(false) +#if PLATFORM(ANDROID) + , m_lastTouch(0) +#endif { LOG(Media, "HTMLMediaElement::HTMLMediaElement"); document->registerForDocumentActivationCallbacks(this); @@ -1626,8 +1634,13 @@ void HTMLMediaElement::playbackProgressTimerFired(Timer<HTMLMediaElement>*) scheduleTimeupdateEvent(true); if (hasMediaControls()) { - if (!m_mouseOver && controls() && hasVideo()) + + if (!m_mouseOver && controls() && hasVideo()) { +#if PLATFORM(ANDROID) + if (WTF::currentTime() - m_lastTouch > TOUCH_DELAY) +#endif mediaControls()->makeTransparent(); + } mediaControls()->playbackProgressed(); } // FIXME: deal with cue ranges here @@ -2373,8 +2386,13 @@ void HTMLMediaElement::defaultEventHandler(Event* event) } #if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) - if (event->isTouchEvent()) + if (event->isTouchEvent()) { m_mouseOver = !(event->type() == eventNames().touchendEvent || event->type() == eventNames().touchcancelEvent); + if (m_mouseOver && hasMediaControls() && controls() && !canPlay()) { + m_lastTouch = WTF::currentTime(); + mediaControls()->makeOpaque(); + } + } #endif HTMLElement::defaultEventHandler(event); diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h index 604cdf8..987cf87 100644 --- a/Source/WebCore/html/HTMLMediaElement.h +++ b/Source/WebCore/html/HTMLMediaElement.h @@ -417,6 +417,10 @@ private: bool m_dispatchingCanPlayEvent : 1; bool m_loadInitiatedByUserGesture : 1; bool m_completelyLoaded : 1; + +#if PLATFORM(ANDROID) + double m_lastTouch; +#endif }; } //namespace |