diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-12 09:27:39 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-08-12 09:27:39 +0200 |
commit | 3749d61e1f7a59f5ec5067e560af1eb610c82015 (patch) | |
tree | 73dc228333948738bbe02976cacca8cd382bc978 /Source/WebCore/rendering/RenderNamedFlowThread.cpp | |
parent | b32b4dcd9a51ab8de6afc53d9e17f8707e1f7a5e (diff) | |
download | qtwebkit-3749d61e1f7a59f5ec5067e560af1eb610c82015.tar.gz |
Imported WebKit commit a77350243e054f3460d1137301d8b3faee3d2052 (http://svn.webkit.org/repository/webkit/trunk@125365)
New snapshot with build fixes for latest API changes in Qt and all WK1 Win MSVC fixes upstream
Diffstat (limited to 'Source/WebCore/rendering/RenderNamedFlowThread.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderNamedFlowThread.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/WebCore/rendering/RenderNamedFlowThread.cpp b/Source/WebCore/rendering/RenderNamedFlowThread.cpp index 227af7df5..5b02453e4 100644 --- a/Source/WebCore/rendering/RenderNamedFlowThread.cpp +++ b/Source/WebCore/rendering/RenderNamedFlowThread.cpp @@ -36,6 +36,7 @@ namespace WebCore { RenderNamedFlowThread::RenderNamedFlowThread(Node* node, PassRefPtr<WebKitNamedFlow> namedFlow) : RenderFlowThread(node) , m_namedFlow(namedFlow) + , m_regionLayoutUpdateEventTimer(this, &RenderNamedFlowThread::regionLayoutUpdateEventTimerFired) { m_namedFlow->setRenderer(this); } @@ -192,6 +193,10 @@ void RenderNamedFlowThread::removeRegionFromThread(RenderRegion* renderRegion) return; } + // After removing all the regions in the flow the following layout needs to dispatch the regionLayoutUpdate event + if (m_regionList.isEmpty()) + setDispatchRegionLayoutUpdateEvent(true); + invalidateRegions(); } @@ -301,4 +306,19 @@ void RenderNamedFlowThread::willBeDestroyed() RenderFlowThread::willBeDestroyed(); } +void RenderNamedFlowThread::dispatchRegionLayoutUpdateEvent() +{ + RenderFlowThread::dispatchRegionLayoutUpdateEvent(); + + if (!m_regionLayoutUpdateEventTimer.isActive() && m_namedFlow->hasEventListeners()) + m_regionLayoutUpdateEventTimer.startOneShot(0); +} + +void RenderNamedFlowThread::regionLayoutUpdateEventTimerFired(Timer<RenderNamedFlowThread>*) +{ + ASSERT(m_namedFlow); + + m_namedFlow->dispatchRegionLayoutUpdateEvent(); +} + } |