| 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 | 78 |
| 79 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderLayer& layer) | 79 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderLayer& layer) |
| 80 : m_layer(layer) | 80 : m_layer(layer) |
| 81 , m_inResizeMode(false) | 81 , m_inResizeMode(false) |
| 82 , m_scrollsOverflow(false) | 82 , m_scrollsOverflow(false) |
| 83 , m_scrollDimensionsDirty(true) | 83 , m_scrollDimensionsDirty(true) |
| 84 , m_inOverflowRelayout(false) | 84 , m_inOverflowRelayout(false) |
| 85 , m_nextTopmostScrollChild(0) | 85 , m_nextTopmostScrollChild(0) |
| 86 , m_topmostScrollChild(0) | 86 , m_topmostScrollChild(0) |
| 87 , m_needsCompositedScrolling(false) | 87 , m_needsCompositedScrolling(false) |
| 88 , m_scrollCorner(0) | 88 , m_scrollCorner(nullptr) |
| 89 , m_resizer(0) | 89 , m_resizer(nullptr) |
| 90 { | 90 { |
| 91 ScrollableArea::setConstrainsScrollingToContentEdge(false); | 91 ScrollableArea::setConstrainsScrollingToContentEdge(false); |
| 92 | 92 |
| 93 Node* node = box().node(); | 93 Node* node = box().node(); |
| 94 if (node && node->isElementNode()) { | 94 if (node && node->isElementNode()) { |
| 95 // We save and restore only the scrollOffset as the other scroll values
are recalculated. | 95 // We save and restore only the scrollOffset as the other scroll values
are recalculated. |
| 96 Element* element = toElement(node); | 96 Element* element = toElement(node); |
| 97 m_scrollOffset = element->savedLayerScrollOffset(); | 97 m_scrollOffset = element->savedLayerScrollOffset(); |
| 98 if (!m_scrollOffset.isZero()) | 98 if (!m_scrollOffset.isZero()) |
| 99 scrollAnimator()->setCurrentPosition(FloatPoint(m_scrollOffset.width
(), m_scrollOffset.height())); | 99 scrollAnimator()->setCurrentPosition(FloatPoint(m_scrollOffset.width
(), m_scrollOffset.height())); |
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 RenderObject* actualRenderer = rendererForScrollbar(box()); | 970 RenderObject* actualRenderer = rendererForScrollbar(box()); |
| 971 RefPtr<RenderStyle> corner = box().hasOverflowClip() ? actualRenderer->getUn
cachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style())
: PassRefPtr<RenderStyle>(nullptr); | 971 RefPtr<RenderStyle> corner = box().hasOverflowClip() ? actualRenderer->getUn
cachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style())
: PassRefPtr<RenderStyle>(nullptr); |
| 972 if (corner) { | 972 if (corner) { |
| 973 if (!m_scrollCorner) { | 973 if (!m_scrollCorner) { |
| 974 m_scrollCorner = RenderScrollbarPart::createAnonymous(&box().documen
t()); | 974 m_scrollCorner = RenderScrollbarPart::createAnonymous(&box().documen
t()); |
| 975 m_scrollCorner->setParent(&box()); | 975 m_scrollCorner->setParent(&box()); |
| 976 } | 976 } |
| 977 m_scrollCorner->setStyle(corner.release()); | 977 m_scrollCorner->setStyle(corner.release()); |
| 978 } else if (m_scrollCorner) { | 978 } else if (m_scrollCorner) { |
| 979 m_scrollCorner->destroy(); | 979 m_scrollCorner->destroy(); |
| 980 m_scrollCorner = 0; | 980 m_scrollCorner = nullptr; |
| 981 } | 981 } |
| 982 } | 982 } |
| 983 | 983 |
| 984 void RenderLayerScrollableArea::paintOverflowControls(GraphicsContext* context,
const IntPoint& paintOffset, const IntRect& damageRect, bool paintingOverlayCont
rols) | 984 void RenderLayerScrollableArea::paintOverflowControls(GraphicsContext* context,
const IntPoint& paintOffset, const IntRect& damageRect, bool paintingOverlayCont
rols) |
| 985 { | 985 { |
| 986 // Don't do anything if we have no overflow. | 986 // Don't do anything if we have no overflow. |
| 987 if (!box().hasOverflowClip()) | 987 if (!box().hasOverflowClip()) |
| 988 return; | 988 return; |
| 989 | 989 |
| 990 IntPoint adjustedPaintOffset = paintOffset; | 990 IntPoint adjustedPaintOffset = paintOffset; |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1238 RenderObject* actualRenderer = rendererForScrollbar(box()); | 1238 RenderObject* actualRenderer = rendererForScrollbar(box()); |
| 1239 RefPtr<RenderStyle> resizer = box().hasOverflowClip() ? actualRenderer->getU
ncachedPseudoStyle(PseudoStyleRequest(RESIZER), actualRenderer->style()) : PassR
efPtr<RenderStyle>(nullptr); | 1239 RefPtr<RenderStyle> resizer = box().hasOverflowClip() ? actualRenderer->getU
ncachedPseudoStyle(PseudoStyleRequest(RESIZER), actualRenderer->style()) : PassR
efPtr<RenderStyle>(nullptr); |
| 1240 if (resizer) { | 1240 if (resizer) { |
| 1241 if (!m_resizer) { | 1241 if (!m_resizer) { |
| 1242 m_resizer = RenderScrollbarPart::createAnonymous(&box().document()); | 1242 m_resizer = RenderScrollbarPart::createAnonymous(&box().document()); |
| 1243 m_resizer->setParent(&box()); | 1243 m_resizer->setParent(&box()); |
| 1244 } | 1244 } |
| 1245 m_resizer->setStyle(resizer.release()); | 1245 m_resizer->setStyle(resizer.release()); |
| 1246 } else if (m_resizer) { | 1246 } else if (m_resizer) { |
| 1247 m_resizer->destroy(); | 1247 m_resizer->destroy(); |
| 1248 m_resizer = 0; | 1248 m_resizer = nullptr; |
| 1249 } | 1249 } |
| 1250 } | 1250 } |
| 1251 | 1251 |
| 1252 void RenderLayerScrollableArea::drawPlatformResizerImage(GraphicsContext* contex
t, IntRect resizerCornerRect) | 1252 void RenderLayerScrollableArea::drawPlatformResizerImage(GraphicsContext* contex
t, IntRect resizerCornerRect) |
| 1253 { | 1253 { |
| 1254 float deviceScaleFactor = blink::deviceScaleFactor(box().frame()); | 1254 float deviceScaleFactor = blink::deviceScaleFactor(box().frame()); |
| 1255 | 1255 |
| 1256 RefPtr<Image> resizeCornerImage; | 1256 RefPtr<Image> resizeCornerImage; |
| 1257 IntSize cornerResizerSize; | 1257 IntSize cornerResizerSize; |
| 1258 if (deviceScaleFactor >= 2) { | 1258 if (deviceScaleFactor >= 2) { |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1459 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) | 1459 void RenderLayerScrollableArea::setTopmostScrollChild(RenderLayer* scrollChild) |
| 1460 { | 1460 { |
| 1461 // We only want to track the topmost scroll child for scrollable areas with | 1461 // We only want to track the topmost scroll child for scrollable areas with |
| 1462 // overlay scrollbars. | 1462 // overlay scrollbars. |
| 1463 if (!hasOverlayScrollbars()) | 1463 if (!hasOverlayScrollbars()) |
| 1464 return; | 1464 return; |
| 1465 m_nextTopmostScrollChild = scrollChild; | 1465 m_nextTopmostScrollChild = scrollChild; |
| 1466 } | 1466 } |
| 1467 | 1467 |
| 1468 } // namespace blink | 1468 } // namespace blink |
| OLD | NEW |