summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderMedia.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebCore/rendering/RenderMedia.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebCore/rendering/RenderMedia.cpp')
-rw-r--r--Source/WebCore/rendering/RenderMedia.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/WebCore/rendering/RenderMedia.cpp b/Source/WebCore/rendering/RenderMedia.cpp
index 385fb5068..ae488569c 100644
--- a/Source/WebCore/rendering/RenderMedia.cpp
+++ b/Source/WebCore/rendering/RenderMedia.cpp
@@ -29,7 +29,9 @@
#include "RenderMedia.h"
#include "HTMLMediaElement.h"
+#include "RenderFlowThread.h"
#include "RenderView.h"
+#include <wtf/StackStats.h>
namespace WebCore {
@@ -52,7 +54,7 @@ RenderMedia::~RenderMedia()
HTMLMediaElement* RenderMedia::mediaElement() const
{
- return static_cast<HTMLMediaElement*>(node());
+ return toHTMLMediaElement(node());
}
void RenderMedia::layout()
@@ -66,8 +68,17 @@ void RenderMedia::layout()
if (!controlsRenderer)
return;
+ bool controlsNeedLayout = controlsRenderer->needsLayout();
+ // If the region chain has changed we also need to relayout the controls to update the region box info.
+ // FIXME: We can do better once we compute region box info for RenderReplaced, not only for RenderBlock.
+ const RenderFlowThread* flowThread = flowThreadContainingBlock();
+ if (flowThread && !controlsNeedLayout) {
+ if (flowThread->pageLogicalSizeChanged())
+ controlsNeedLayout = true;
+ }
+
LayoutSize newSize = contentBoxRect().size();
- if (newSize == oldSize && !controlsRenderer->needsLayout())
+ if (newSize == oldSize && !controlsNeedLayout)
return;
// When calling layout() on a child node, a parent must either push a LayoutStateMaintainter, or