Title: [130700] trunk/Source/WebCore
- Revision
- 130700
- Author
- jap...@chromium.org
- Date
- 2012-10-08 16:20:33 -0700 (Mon, 08 Oct 2012)
Log Message
Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
https://bugs.webkit.org/show_bug.cgi?id=98463
Reviewed by Eric Seidel.
No new tests, refactor only.
* rendering/RenderLayer.cpp:
(WebCore::frameElementAndViewPermitScroll):
(WebCore::RenderLayer::scrollRectToVisible):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (130699 => 130700)
--- trunk/Source/WebCore/ChangeLog 2012-10-08 23:12:33 UTC (rev 130699)
+++ trunk/Source/WebCore/ChangeLog 2012-10-08 23:20:33 UTC (rev 130700)
@@ -1,3 +1,16 @@
+2012-10-08 Nate Chapin <jap...@chromium.org>
+
+ Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
+ https://bugs.webkit.org/show_bug.cgi?id=98463
+
+ Reviewed by Eric Seidel.
+
+ No new tests, refactor only.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::frameElementAndViewPermitScroll):
+ (WebCore::RenderLayer::scrollRectToVisible):
+
2012-10-06 Martin Robinson <mrobin...@igalia.com>
[Soup] Simplify the way that requests are started
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (130699 => 130700)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-10-08 23:12:33 UTC (rev 130699)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-10-08 23:20:33 UTC (rev 130700)
@@ -1755,6 +1755,21 @@
renderer()->node()->document()->eventQueue()->enqueueOrDispatchScrollEvent(renderer()->node(), DocumentEventQueue::ScrollEventElementTarget);
}
+static inline bool frameElementAndViewPermitScroll(HTMLFrameElement* frameElement, FrameView* frameView)
+{
+ // If scrollbars aren't explicitly forbidden, permit scrolling.
+ if (frameElement && frameElement->scrollingMode() != ScrollbarAlwaysOff)
+ return true;
+
+ // If scrollbars are forbidden, user initiated scrolls should obviously be ignored.
+ if (frameView->wasScrolledByUser())
+ return false;
+
+ // Forbid autoscrolls when scrollbars are off, but permits other programmatic scrolls,
+ // like navigation to an anchor.
+ return !frameView->frame()->eventHandler()->autoscrollInProgress();
+}
+
void RenderLayer::scrollRectToVisible(const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
{
RenderLayer* parentLayer = 0;
@@ -1805,8 +1820,7 @@
if (ownerElement->hasTagName(frameTag) || ownerElement->hasTagName(iframeTag))
frameElement = static_cast<HTMLFrameElement*>(ownerElement);
- if ((frameElement && frameElement->scrollingMode() != ScrollbarAlwaysOff)
- || (!frameView->frame()->eventHandler()->autoscrollInProgress() && !frameView->wasScrolledByUser())) {
+ if (frameElementAndViewPermitScroll(frameElement, frameView)) {
LayoutRect viewRect = frameView->visibleContentRect();
LayoutRect exposeRect = getRectToExpose(viewRect, rect, alignX, alignY);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes