diff options
author | Steve Block <steveblock@google.com> | 2011-06-08 08:26:01 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-08 08:26:01 -0700 |
commit | 3742ac093d35d923c81693096ab6671e9b147700 (patch) | |
tree | c2add9100f789dad45ef1ec5328bddde02c47a4c /Source/WebCore/platform/ScrollView.cpp | |
parent | 901401d90459bc22580842455d4588b9a697514d (diff) | |
parent | e5926f4a0d6adc9ad4a75824129f117181953560 (diff) | |
download | external_webkit-3742ac093d35d923c81693096ab6671e9b147700.zip external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.gz external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.bz2 |
Merge changes I55c6d71a,Ifb3277d4,Ia1b847a2,I7ba9cf3f,Ida2b2a8a,I1280ec90,I72f818d5,I2e3b588b,I9a4e6289,Ia724c78b,Icd8612c8,Ie31b15d7,Ie125edae,I77941a88,I89dae78b,I3516e5ca,I1a4c17b5,I2c4ecc1a,I9c8e6537,Ifac13115,Ie1f80e09,Ia541ed77,I60ce9d78
* changes:
Merge WebKit at r82507: Update ThirdPartyProject.prop
Merge WebKit at r82507: Cherry-pick change r88166 to add INSPECTOR guards to ScriptProfiler
Merge WebKit at r82507: Work around a V8 bug
Merge WebKit at r82507: JNIType renamed to JavaType
Merge WebKit at r82507: IconDatabaseClient interface expanded
Merge WebKit at r82507: Don't use new loss-free code path in HTMLCanvasElement::toDataURL()
Merge WebKit at r82507: IcondDatabaseBase::iconForPageURL() renamed
Merge WebKit at r82507: IconDatabaseBase::Open() signature changed
Merge WebKit at r82507: Node::isContentEditable() renamed
Merge WebKit at r82507: Use icon database through IconDatabaseBase
Merge WebKit at r82507: toInputElement() is now a member of Node
Merge WebKit at r82507: FrameLoaderClient::objectContentType() signature changed
Merge WebKit at r82507: StringImpl::computeHash() removed
Merge WebKit at r82507: Stub out FontPlatformData::setOrientation()
Merge WebKit at r82507: Path::strokeBoundingRect() is now const
Merge WebKit at r82507: Add missing UnusedParam.h include in ApplicationCacheGroup.cpp
Merge WebKit at r82507: Continue to use Android's version of FontPlatformData.h
Merge WebKit at r82507: Update signature of FontCustomPlatformData::fontPlatformData()
Merge WebKit at r82507: Fix conflicts due to JNI refactoring
Merge WebKit at r82507: Fix conflicts due to new StorageTracker
Merge WebKit at r82507: Fix conflicts
Merge WebKit at r82507: Fix makefiles
Merge WebKit at r82507: Initial merge by git
Diffstat (limited to 'Source/WebCore/platform/ScrollView.cpp')
-rw-r--r-- | Source/WebCore/platform/ScrollView.cpp | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/Source/WebCore/platform/ScrollView.cpp b/Source/WebCore/platform/ScrollView.cpp index baf2e32..58615fb 100644 --- a/Source/WebCore/platform/ScrollView.cpp +++ b/Source/WebCore/platform/ScrollView.cpp @@ -124,7 +124,7 @@ void ScrollView::setHasVerticalScrollbar(bool hasBar) axObjectCache()->handleScrollbarUpdate(this); } -#if !PLATFORM(GTK) +#if !USE(NATIVE_GTK_MAIN_FRAME_SCROLLBAR) PassRefPtr<Scrollbar> ScrollView::createScrollbar(ScrollbarOrientation orientation) { return Scrollbar::createNativeScrollbar(this, orientation, RegularScrollbar); @@ -224,7 +224,7 @@ void ScrollView::setDelegatesScrolling(bool delegatesScrolling) m_delegatesScrolling = delegatesScrolling; } -#if !PLATFORM(GTK) +#if !USE(NATIVE_GTK_MAIN_FRAME_SCROLLBAR) IntRect ScrollView::visibleContentRect(bool includeScrollbars) const { if (platformWidget()) @@ -357,6 +357,10 @@ void ScrollView::didCompleteRubberBand(const IntSize&) const { } +void ScrollView::notifyPageThatContentAreaWillPaint() const +{ +} + void ScrollView::setScrollOffset(const IntPoint& offset) { int horizontalOffset = offset.x(); @@ -408,7 +412,7 @@ void ScrollView::setScrollPosition(const IntPoint& scrollPoint) #if ENABLE(TILED_BACKING_STORE) if (delegatesScrolling()) { - hostWindow()->delegatedScrollRequested(IntSize(scrollPoint.x(), scrollPoint.y())); + hostWindow()->delegatedScrollRequested(scrollPoint); if (!m_actualVisibleContentRect.isEmpty()) m_actualVisibleContentRect.setLocation(scrollPoint); return; @@ -439,15 +443,18 @@ bool ScrollView::logicalScroll(ScrollLogicalDirection direction, ScrollGranulari IntSize ScrollView::overhangAmount() const { IntSize stretch; - if (scrollY() < 0) - stretch.setHeight(scrollY()); - else if (scrollY() > contentsHeight() - visibleContentRect().height()) - stretch.setHeight(scrollY() - (contentsHeight() - visibleContentRect().height())); - if (scrollX() < 0) - stretch.setWidth(scrollX()); - else if (scrollX() > contentsWidth() - visibleContentRect().width()) - stretch.setWidth(scrollX() - (contentsWidth() - visibleContentRect().width())); + int physicalScrollY = scrollPosition().y() + m_scrollOrigin.y(); + if (physicalScrollY < 0) + stretch.setHeight(physicalScrollY); + else if (physicalScrollY > contentsHeight() - visibleContentRect().height()) + stretch.setHeight(physicalScrollY - (contentsHeight() - visibleContentRect().height())); + + int physicalScrollX = scrollPosition().x() + m_scrollOrigin.x(); + if (physicalScrollX < 0) + stretch.setWidth(physicalScrollX); + else if (physicalScrollX > contentsWidth() - visibleContentRect().width()) + stretch.setWidth(physicalScrollX - (contentsWidth() - visibleContentRect().width())); return stretch; } @@ -947,7 +954,7 @@ void ScrollView::paint(GraphicsContext* context, const IntRect& rect) if (context->paintingDisabled() && !context->updatingControlTints()) return; - scrollAnimator()->contentAreaWillPaint(); + notifyPageThatContentAreaWillPaint(); IntRect documentDirtyRect = rect; documentDirtyRect.intersect(frameRect()); @@ -1000,26 +1007,28 @@ void ScrollView::calculateOverhangAreasForPainting(IntRect& horizontalOverhangRe int horizontalScrollbarHeight = (horizontalScrollbar() && !horizontalScrollbar()->isOverlayScrollbar()) ? horizontalScrollbar()->height() : 0; - if (scrollY() < 0) { + int physicalScrollY = scrollPosition().y() + m_scrollOrigin.y(); + if (physicalScrollY < 0) { horizontalOverhangRect = frameRect(); - horizontalOverhangRect.setHeight(-scrollY()); - } else if (scrollY() > contentsHeight() - visibleContentRect().height()) { - int height = scrollY() - (contentsHeight() - visibleContentRect().height()); + horizontalOverhangRect.setHeight(-physicalScrollY); + } else if (physicalScrollY > contentsHeight() - visibleContentRect().height()) { + int height = physicalScrollY - (contentsHeight() - visibleContentRect().height()); horizontalOverhangRect = frameRect(); horizontalOverhangRect.setY(frameRect().maxY() - height - horizontalScrollbarHeight); horizontalOverhangRect.setHeight(height); } - if (scrollX() < 0) { - verticalOverhangRect.setWidth(-scrollX()); + int physicalScrollX = scrollPosition().x() + m_scrollOrigin.x(); + if (physicalScrollX < 0) { + verticalOverhangRect.setWidth(-physicalScrollX); verticalOverhangRect.setHeight(frameRect().height() - horizontalOverhangRect.height()); verticalOverhangRect.setX(frameRect().x()); if (horizontalOverhangRect.y() == frameRect().y()) verticalOverhangRect.setY(frameRect().y() + horizontalOverhangRect.height()); else verticalOverhangRect.setY(frameRect().y()); - } else if (scrollX() > contentsWidth() - visibleContentRect().width()) { - int width = scrollX() - (contentsWidth() - visibleContentRect().width()); + } else if (physicalScrollX > contentsWidth() - visibleContentRect().width()) { + int width = physicalScrollX - (contentsWidth() - visibleContentRect().width()); verticalOverhangRect.setWidth(width); verticalOverhangRect.setHeight(frameRect().height() - horizontalOverhangRect.height()); verticalOverhangRect.setX(frameRect().maxX() - width - verticalScrollbarWidth); @@ -1195,7 +1204,7 @@ void ScrollView::setScrollOrigin(const IntPoint& origin, bool updatePositionAtAl updateScrollbars(scrollOffset()); } -#if !PLATFORM(WX) && !PLATFORM(GTK) && !PLATFORM(EFL) +#if !PLATFORM(WX) && !USE(NATIVE_GTK_MAIN_FRAME_SCROLLBAR) && !PLATFORM(EFL) void ScrollView::platformInit() { |