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