OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. | 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights
reserved. |
3 * | 3 * |
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
5 * | 5 * |
6 * Other contributors: | 6 * Other contributors: |
7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 void DeprecatedPaintLayerScrollableArea::computeScrollDimensions() | 632 void DeprecatedPaintLayerScrollableArea::computeScrollDimensions() |
633 { | 633 { |
634 m_overflowRect = box().layoutOverflowRect(); | 634 m_overflowRect = box().layoutOverflowRect(); |
635 box().flipForWritingMode(m_overflowRect); | 635 box().flipForWritingMode(m_overflowRect); |
636 | 636 |
637 int scrollableLeftOverflow = m_overflowRect.x() - box().borderLeft() - (box(
).style()->shouldPlaceBlockDirectionScrollbarOnLogicalLeft() ? box().verticalScr
ollbarWidth() : 0); | 637 int scrollableLeftOverflow = m_overflowRect.x() - box().borderLeft() - (box(
).style()->shouldPlaceBlockDirectionScrollbarOnLogicalLeft() ? box().verticalScr
ollbarWidth() : 0); |
638 int scrollableTopOverflow = m_overflowRect.y() - box().borderTop(); | 638 int scrollableTopOverflow = m_overflowRect.y() - box().borderTop(); |
639 setScrollOrigin(IntPoint(-scrollableLeftOverflow, -scrollableTopOverflow)); | 639 setScrollOrigin(IntPoint(-scrollableLeftOverflow, -scrollableTopOverflow)); |
640 } | 640 } |
641 | 641 |
642 void DeprecatedPaintLayerScrollableArea::scrollToPosition(const DoublePoint& scr
ollPosition, ScrollOffsetClamping clamp, ScrollBehavior scrollBehavior) | 642 void DeprecatedPaintLayerScrollableArea::scrollToPosition(const DoublePoint& scr
ollPosition, ScrollOffsetClamping clamp, ScrollBehavior scrollBehavior, ScrollTy
pe scrollType) |
643 { | 643 { |
644 cancelProgrammaticScrollAnimation(); | 644 cancelProgrammaticScrollAnimation(); |
645 | 645 |
646 DoublePoint newScrollPosition = clamp == ScrollOffsetClamped ? clampScrollPo
sition(scrollPosition) : scrollPosition; | 646 DoublePoint newScrollPosition = clamp == ScrollOffsetClamped ? clampScrollPo
sition(scrollPosition) : scrollPosition; |
647 if (newScrollPosition != scrollPositionDouble()) | 647 if (newScrollPosition != scrollPositionDouble()) |
648 ScrollableArea::setScrollPosition(newScrollPosition, ProgrammaticScroll,
scrollBehavior); | 648 ScrollableArea::setScrollPosition(newScrollPosition, scrollType, scrollB
ehavior); |
649 } | 649 } |
650 | 650 |
651 void DeprecatedPaintLayerScrollableArea::updateScrollDimensions(DoubleSize& scro
llOffset, bool& autoHorizontalScrollBarChanged, bool& autoVerticalScrollBarChang
ed) | 651 void DeprecatedPaintLayerScrollableArea::updateScrollDimensions(DoubleSize& scro
llOffset, bool& autoHorizontalScrollBarChanged, bool& autoVerticalScrollBarChang
ed) |
652 { | 652 { |
653 ASSERT(box().hasOverflowClip()); | 653 ASSERT(box().hasOverflowClip()); |
654 | 654 |
655 if (needsScrollbarReconstruction()) { | 655 if (needsScrollbarReconstruction()) { |
656 if (m_hBar) | 656 if (m_hBar) |
657 destroyScrollbar(HorizontalScrollbar); | 657 destroyScrollbar(HorizontalScrollbar); |
658 if (m_vBar) | 658 if (m_vBar) |
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1370 LayoutUnit baseHeight = box().size().height() - (isBoxSizingBorder ? Lay
outUnit() : box().borderAndPaddingHeight()); | 1370 LayoutUnit baseHeight = box().size().height() - (isBoxSizingBorder ? Lay
outUnit() : box().borderAndPaddingHeight()); |
1371 baseHeight = baseHeight / zoomFactor; | 1371 baseHeight = baseHeight / zoomFactor; |
1372 element->setInlineStyleProperty(CSSPropertyHeight, roundToInt(baseHeight
+ difference.height()), CSSPrimitiveValue::UnitType::Pixels); | 1372 element->setInlineStyleProperty(CSSPropertyHeight, roundToInt(baseHeight
+ difference.height()), CSSPrimitiveValue::UnitType::Pixels); |
1373 } | 1373 } |
1374 | 1374 |
1375 document.updateLayout(); | 1375 document.updateLayout(); |
1376 | 1376 |
1377 // FIXME (Radar 4118564): We should also autoscroll the window as necessary
to keep the point under the cursor in view. | 1377 // FIXME (Radar 4118564): We should also autoscroll the window as necessary
to keep the point under the cursor in view. |
1378 } | 1378 } |
1379 | 1379 |
1380 LayoutRect DeprecatedPaintLayerScrollableArea::scrollIntoView(const LayoutRect&
rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY) | 1380 LayoutRect DeprecatedPaintLayerScrollableArea::scrollIntoView(const LayoutRect&
rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY, ScrollType s
crollType) |
1381 { | 1381 { |
1382 LayoutRect localExposeRect(box().absoluteToLocalQuad(FloatQuad(FloatRect(rec
t)), UseTransforms).boundingBox()); | 1382 LayoutRect localExposeRect(box().absoluteToLocalQuad(FloatQuad(FloatRect(rec
t)), UseTransforms).boundingBox()); |
1383 localExposeRect.move(-box().borderLeft(), -box().borderTop()); | 1383 localExposeRect.move(-box().borderLeft(), -box().borderTop()); |
1384 LayoutRect layerBounds(0, 0, box().clientWidth(), box().clientHeight()); | 1384 LayoutRect layerBounds(0, 0, box().clientWidth(), box().clientHeight()); |
1385 LayoutRect r = ScrollAlignment::getRectToExpose(layerBounds, localExposeRect
, alignX, alignY); | 1385 LayoutRect r = ScrollAlignment::getRectToExpose(layerBounds, localExposeRect
, alignX, alignY); |
1386 | 1386 |
1387 DoublePoint clampedScrollPosition = clampScrollPosition(scrollPositionDouble
() + roundedIntSize(r.location())); | 1387 DoublePoint clampedScrollPosition = clampScrollPosition(scrollPositionDouble
() + roundedIntSize(r.location())); |
1388 if (clampedScrollPosition == scrollPositionDouble()) | 1388 if (clampedScrollPosition == scrollPositionDouble()) |
1389 return rect; | 1389 return rect; |
1390 | 1390 |
1391 DoubleSize oldScrollOffset = adjustedScrollOffset(); | 1391 DoubleSize oldScrollOffset = adjustedScrollOffset(); |
1392 scrollToPosition(clampedScrollPosition); | 1392 scrollToPosition(clampedScrollPosition, ScrollOffsetUnclamped, ScrollBehavio
rInstant, scrollType); |
1393 DoubleSize scrollOffsetDifference = adjustedScrollOffset() - oldScrollOffset
; | 1393 DoubleSize scrollOffsetDifference = adjustedScrollOffset() - oldScrollOffset
; |
1394 localExposeRect.move(-LayoutSize(scrollOffsetDifference)); | 1394 localExposeRect.move(-LayoutSize(scrollOffsetDifference)); |
1395 return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(localExposeR
ect)), UseTransforms).boundingBox()); | 1395 return LayoutRect(box().localToAbsoluteQuad(FloatQuad(FloatRect(localExposeR
ect)), UseTransforms).boundingBox()); |
1396 } | 1396 } |
1397 | 1397 |
1398 void DeprecatedPaintLayerScrollableArea::updateScrollableAreaSet(bool hasOverflo
w) | 1398 void DeprecatedPaintLayerScrollableArea::updateScrollableAreaSet(bool hasOverflo
w) |
1399 { | 1399 { |
1400 LocalFrame* frame = box().frame(); | 1400 LocalFrame* frame = box().frame(); |
1401 if (!frame) | 1401 if (!frame) |
1402 return; | 1402 return; |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1484 return false; | 1484 return false; |
1485 | 1485 |
1486 LocalFrame* frame = box().frame(); | 1486 LocalFrame* frame = box().frame(); |
1487 if (!frame || !frame->isMainFrame() || !frame->settings()) | 1487 if (!frame || !frame->isMainFrame() || !frame->settings()) |
1488 return false; | 1488 return false; |
1489 | 1489 |
1490 return frame->settings()->viewportMetaEnabled(); | 1490 return frame->settings()->viewportMetaEnabled(); |
1491 } | 1491 } |
1492 | 1492 |
1493 } // namespace blink | 1493 } // namespace blink |
OLD | NEW |