summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2011-07-25 14:45:08 -0700
committerShimeng (Simon) Wang <swang@google.com>2011-07-25 14:45:08 -0700
commit7a6539d65a03ff89c193791e9fe0994f580a72a7 (patch)
tree05262c78e1b40220d2a3dab547a0560ca6964a5c /Source/WebCore/rendering
parent47bd03b6265feaa5a369f177e630c6dd16539abc (diff)
downloadexternal_webkit-7a6539d65a03ff89c193791e9fe0994f580a72a7.zip
external_webkit-7a6539d65a03ff89c193791e9fe0994f580a72a7.tar.gz
external_webkit-7a6539d65a03ff89c193791e9fe0994f580a72a7.tar.bz2
Disable customized overflow scroll for positioned renderblock.
This fixes maps.google.com dropdown list scrolling issue. Tested on developer.android.com, slate.com, lemonde.fr; the existing overflow scrolling are working as before this change. issue: 4203823 Change-Id: I11cebbfd8bb3dd060bbee1b29ec96627fcbf1a72
Diffstat (limited to 'Source/WebCore/rendering')
-rw-r--r--Source/WebCore/rendering/RenderLayer.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp
index 6aff65c..0eae838 100644
--- a/Source/WebCore/rendering/RenderLayer.cpp
+++ b/Source/WebCore/rendering/RenderLayer.cpp
@@ -2274,10 +2274,13 @@ void RenderLayer::updateScrollInfoAfterLayout()
updateOverflowStatus(horizontalOverflow, verticalOverflow);
#if ENABLE(ANDROID_OVERFLOW_SCROLL)
- bool hasOverflowScroll = ((horizontalOverflow && m_hBar) || (verticalOverflow && m_vBar))
- // 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)) &&
+ ((!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()));
if (hasOverflowScroll != m_hasOverflowScroll) {
m_hasOverflowScroll = hasOverflowScroll;
dirtyZOrderLists();