Title: [91337] trunk/Source/WebCore
Revision
91337
Author
[email protected]
Date
2011-07-19 22:52:24 -0700 (Tue, 19 Jul 2011)

Log Message

[chromium] Media player controls do not fade out.
https://bugs.webkit.org/show_bug.cgi?id=64837

Media controls were not fading out when the mouse leaves the video
due to underlying changes in webkit media controls.
Fix was to copy missing code from MediaControlRootElement to
MediaControlRootElementChromium.

Reviewed by Dimitri Glazkov.

* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
(WebCore::MediaControlRootElementChromium::playbackProgressed):
(WebCore::MediaControlRootElementChromium::containsRelatedTarget):
(WebCore::MediaControlRootElementChromium::defaultEventHandler):
* html/shadow/MediaControlRootElementChromium.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (91336 => 91337)


--- trunk/Source/WebCore/ChangeLog	2011-07-20 05:41:16 UTC (rev 91336)
+++ trunk/Source/WebCore/ChangeLog	2011-07-20 05:52:24 UTC (rev 91337)
@@ -1,3 +1,22 @@
+2011-07-19  Steve Lacey  <[email protected]>
+
+        [chromium] Media player controls do not fade out.
+        https://bugs.webkit.org/show_bug.cgi?id=64837
+
+        Media controls were not fading out when the mouse leaves the video
+        due to underlying changes in webkit media controls.
+        Fix was to copy missing code from MediaControlRootElement to
+        MediaControlRootElementChromium.
+
+        Reviewed by Dimitri Glazkov.
+
+        * html/shadow/MediaControlRootElementChromium.cpp:
+        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
+        (WebCore::MediaControlRootElementChromium::playbackProgressed):
+        (WebCore::MediaControlRootElementChromium::containsRelatedTarget):
+        (WebCore::MediaControlRootElementChromium::defaultEventHandler):
+        * html/shadow/MediaControlRootElementChromium.h:
+
 2011-07-19  Luke Macpherson   <[email protected]>
 
         Implement CSSPropertyCounterIncrement and CounterReset in CSSStyleApplyProperty.

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp (91336 => 91337)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2011-07-20 05:41:16 UTC (rev 91336)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp	2011-07-20 05:52:24 UTC (rev 91337)
@@ -30,6 +30,7 @@
 #include "MediaControlRootElementChromium.h"
 
 #include "MediaControlElements.h"
+#include "MouseEvent.h"
 #include "Page.h"
 #include "RenderTheme.h"
 
@@ -49,6 +50,7 @@
     , m_volumeSliderContainer(0)
     , m_panel(0)
     , m_opaque(true)
+    , m_isMouseOverControls(false)
 {
 }
 
@@ -209,6 +211,9 @@
 {
     m_timeline->setPosition(m_mediaElement->currentTime());
     updateTimeDisplay();
+
+    if (!m_isMouseOverControls && m_mediaElement->hasVideo())
+        makeTransparent();
 }
 
 void MediaControlRootElementChromium::playbackStopped()
@@ -259,6 +264,32 @@
     reset();
 }
 
+bool MediaControlRootElementChromium::containsRelatedTarget(Event* event)
+{
+    if (!event->isMouseEvent())
+        return false;
+    EventTarget* relatedTarget = static_cast<MouseEvent*>(event)->relatedTarget();
+    if (!relatedTarget)
+        return false;
+    return contains(relatedTarget->toNode());
+}
+
+void MediaControlRootElementChromium::defaultEventHandler(Event* event)
+{
+    MediaControls::defaultEventHandler(event);
+
+    if (event->type() == eventNames().mouseoverEvent) {
+        if (!containsRelatedTarget(event)) {
+            m_isMouseOverControls = true;
+            if (!m_mediaElement->canPlay())
+                makeOpaque();
+        }
+    } else if (event->type() == eventNames().mouseoutEvent) {
+        if (!containsRelatedTarget(event))
+            m_isMouseOverControls = false;
+    }
+}
+
 void MediaControlRootElementChromium::changedClosedCaptionsVisibility()
 {
 }

Modified: trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.h (91336 => 91337)


--- trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.h	2011-07-20 05:41:16 UTC (rev 91336)
+++ trunk/Source/WebCore/html/shadow/MediaControlRootElementChromium.h	2011-07-20 05:52:24 UTC (rev 91337)
@@ -89,8 +89,12 @@
 private:
     MediaControlRootElementChromium(HTMLMediaElement*);
 
+    virtual void defaultEventHandler(Event*);
+
     virtual const AtomicString& shadowPseudoId() const;
 
+    bool containsRelatedTarget(Event*);
+
     HTMLMediaElement* m_mediaElement;
 
     MediaControlPlayButtonElement* m_playButton;
@@ -103,6 +107,7 @@
     MediaControlPanelElement* m_panel;
 
     bool m_opaque;
+    bool m_isMouseOverControls;
 };
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to