| Index: Source/core/rendering/RenderLayerScrollableArea.cpp
|
| diff --git a/Source/core/rendering/RenderLayerScrollableArea.cpp b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| index d61144d26f7814ff6db932f4099e431361ea5cfc..3997296bcbc8577f08cb031a6472b9878ce5ab3a 100644
|
| --- a/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| +++ b/Source/core/rendering/RenderLayerScrollableArea.cpp
|
| @@ -87,6 +87,8 @@ RenderLayerScrollableArea::RenderLayerScrollableArea(RenderLayer& layer)
|
| , m_nextTopmostScrollChild(0)
|
| , m_topmostScrollChild(0)
|
| , m_needsCompositedScrolling(false)
|
| + , m_horizontalScrollbarChanged(false)
|
| + , m_verticalScrollbarChanged(false)
|
| , m_scrollCorner(nullptr)
|
| , m_resizer(nullptr)
|
| {
|
| @@ -753,16 +755,35 @@ void RenderLayerScrollableArea::updateAfterStyleChange(const RenderStyle* oldSty
|
| }
|
|
|
| // FIXME: Need to detect a swap from custom to native scrollbars (and vice versa).
|
| - if (m_hBar)
|
| + if (m_hBar) {
|
| + IntRect oldHrect = m_hBar->frameRect();
|
| m_hBar->styleChanged();
|
| - if (m_vBar)
|
| + if ((oldHrect != m_hBar->frameRect()) && m_hBar->isCustomScrollbar())
|
| + m_horizontalScrollbarChanged = true;
|
| + }
|
| + if (m_vBar) {
|
| + IntRect oldVrect = m_vBar->frameRect();
|
| m_vBar->styleChanged();
|
| + if ((oldVrect != m_vBar->frameRect()) && m_vBar->isCustomScrollbar())
|
| + m_verticalScrollbarChanged = true;
|
| + }
|
|
|
| updateScrollCornerStyle();
|
| updateResizerAreaSet();
|
| updateResizerStyle();
|
| }
|
|
|
| +bool RenderLayerScrollableArea::didCustomScrollbarRectChanged()
|
| +{
|
| + bool scrollbarRectChanged = false;
|
| + if (m_verticalScrollbarChanged || m_horizontalScrollbarChanged) {
|
| + scrollbarRectChanged = true;
|
| + m_verticalScrollbarChanged = false;
|
| + m_horizontalScrollbarChanged = false;
|
| + }
|
| + return scrollbarRectChanged;
|
| +}
|
| +
|
| bool RenderLayerScrollableArea::updateAfterCompositingChange()
|
| {
|
| layer()->updateScrollingStateAfterCompositingChange();
|
|
|