diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp')
-rw-r--r-- | src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp index 29e2e5761f..9611660427 100644 --- a/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp +++ b/src/3rdparty/webkit/WebCore/rendering/MediaControlElements.cpp @@ -46,6 +46,16 @@ namespace WebCore { using namespace HTMLNames; +HTMLMediaElement* toParentMediaElement(RenderObject* o) +{ + Node* node = o->node(); + Node* mediaNode = node ? node->shadowAncestorNode() : 0; + if (!mediaNode || (!mediaNode->hasTagName(HTMLNames::videoTag) && !mediaNode->hasTagName(HTMLNames::audioTag))) + return 0; + + return static_cast<HTMLMediaElement*>(mediaNode); +} + // FIXME: These constants may need to be tweaked to better match the seeking in the QuickTime plug-in. static const float cSeekRepeatDelay = 0.1f; static const float cStepTime = 0.07f; @@ -138,7 +148,7 @@ bool MediaControlElement::rendererIsNeeded(RenderStyle* style) ASSERT(document()->page()); return HTMLDivElement::rendererIsNeeded(style) && parent() && parent()->renderer() - && document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), m_mediaElement); + && (!style->hasAppearance() || document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), m_mediaElement)); } void MediaControlElement::attach() @@ -366,7 +376,7 @@ bool MediaControlInputElement::rendererIsNeeded(RenderStyle* style) ASSERT(document()->page()); return HTMLInputElement::rendererIsNeeded(style) && parent() && parent()->renderer() - && document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), m_mediaElement); + && (!style->hasAppearance() || document()->page()->theme()->shouldRenderMediaControlPart(style->appearance(), m_mediaElement)); } void MediaControlInputElement::attach() @@ -636,6 +646,15 @@ void MediaControlVolumeSliderElement::defaultEventHandler(Event* event) } } +void MediaControlVolumeSliderElement::update() +{ + float volume = m_mediaElement->volume(); + if (value().toFloat() != volume) { + setValue(String::number(volume)); + MediaControlInputElement::update(); + } +} + // ---------------------------- MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(Document* document, HTMLMediaElement* element) @@ -646,12 +665,12 @@ MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement(Documen void MediaControlFullscreenButtonElement::defaultEventHandler(Event* event) { if (event->type() == eventNames().clickEvent) { + m_mediaElement->enterFullscreen(); event->setDefaultHandled(); } HTMLInputElement::defaultEventHandler(event); } - // ---------------------------- MediaControlTimeDisplayElement::MediaControlTimeDisplayElement(Document* document, PseudoId pseudo, HTMLMediaElement* element) |