diff options
| author | Shimeng (Simon) Wang <swang@google.com> | 2011-07-25 16:01:54 -0700 |
|---|---|---|
| committer | Shimeng (Simon) Wang <swang@google.com> | 2011-07-25 16:01:54 -0700 |
| commit | ad322cf1eda011a4d60aa1f2f10f6487491e4019 (patch) | |
| tree | 3da7f78bd24f555ddac1052091b55c521e3a7b56 /Source/WebCore/rendering | |
| parent | 7a6539d65a03ff89c193791e9fe0994f580a72a7 (diff) | |
| download | external_webkit-ad322cf1eda011a4d60aa1f2f10f6487491e4019.zip external_webkit-ad322cf1eda011a4d60aa1f2f10f6487491e4019.tar.gz external_webkit-ad322cf1eda011a4d60aa1f2f10f6487491e4019.tar.bz2 | |
Refactor the overflow scroll fix.
Hope this is more understandable.
issue: 4203823
Change-Id: Ib1d95f6b250baf4b94f706e090a9f087aa9b7ed8
Diffstat (limited to 'Source/WebCore/rendering')
| -rw-r--r-- | Source/WebCore/rendering/RenderLayer.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp index 0eae838..4e1c875 100644 --- a/Source/WebCore/rendering/RenderLayer.cpp +++ b/Source/WebCore/rendering/RenderLayer.cpp @@ -2274,13 +2274,16 @@ void RenderLayer::updateScrollInfoAfterLayout() updateOverflowStatus(horizontalOverflow, verticalOverflow); #if ENABLE(ANDROID_OVERFLOW_SCROLL) - bool hasOverflowScroll = ((horizontalOverflow && m_hBar) || (verticalOverflow && m_vBar)) && - ((!renderer()->isTextArea() && !renderer()->isRenderBlock()) || - // Disable customized overflow scroll for positioned RenderBlock. - (renderer()->isRenderBlock() && !renderer()->isPositioned()) || - // Disable UI side scrolling for textareas, unless they are readonly. - (renderer()->isTextArea() && renderer()->node() && - static_cast<HTMLTextAreaElement*>(renderer()->node())->readOnly())); + bool hasOverflowScroll = ((horizontalOverflow && m_hBar) || (verticalOverflow && m_vBar)); + if (hasOverflowScroll) { + // Disable Android overflow scroll for positioned RenderBlock. + if (renderer()->isRenderBlock() && renderer()->isPositioned()) + hasOverflowScroll = false; + // Disable UI side scrolling for non-readonly textareas. + else if (renderer()->isTextArea() && (!renderer()->node() + || !static_cast<HTMLTextAreaElement*>(renderer()->node())->readOnly())) + hasOverflowScroll = false; + } if (hasOverflowScroll != m_hasOverflowScroll) { m_hasOverflowScroll = hasOverflowScroll; dirtyZOrderLists(); |
