| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 #include "config.h" | 26 #include "config.h" |
| 27 #include "core/layout/LayoutScrollbar.h" | 27 #include "core/layout/LayoutScrollbar.h" |
| 28 | 28 |
| 29 #include "core/css/PseudoStyleRequest.h" | 29 #include "core/css/PseudoStyleRequest.h" |
| 30 #include "core/frame/FrameView.h" | 30 #include "core/frame/FrameView.h" |
| 31 #include "core/frame/LocalFrame.h" | 31 #include "core/frame/LocalFrame.h" |
| 32 #include "core/layout/LayoutPart.h" | 32 #include "core/layout/LayoutPart.h" |
| 33 #include "core/layout/LayoutScrollbarPart.h" | 33 #include "core/layout/LayoutScrollbarPart.h" |
| 34 #include "core/layout/LayoutScrollbarTheme.h" | 34 #include "core/layout/LayoutScrollbarTheme.h" |
| 35 #include "core/layout/LayoutView.h" |
| 35 #include "platform/graphics/GraphicsContext.h" | 36 #include "platform/graphics/GraphicsContext.h" |
| 36 | 37 |
| 37 namespace blink { | 38 namespace blink { |
| 38 | 39 |
| 39 PassRefPtrWillBeRawPtr<Scrollbar> LayoutScrollbar::createCustomScrollbar(Scrolla
bleArea* scrollableArea, ScrollbarOrientation orientation, Node* ownerNode, Loca
lFrame* owningFrame) | 40 PassRefPtrWillBeRawPtr<Scrollbar> LayoutScrollbar::createCustomScrollbar(Scrolla
bleArea* scrollableArea, ScrollbarOrientation orientation, Node* ownerNode, Loca
lFrame* owningFrame) |
| 40 { | 41 { |
| 41 return adoptRefWillBeNoop(new LayoutScrollbar(scrollableArea, orientation, o
wnerNode, owningFrame)); | 42 return adoptRefWillBeNoop(new LayoutScrollbar(scrollableArea, orientation, o
wnerNode, owningFrame)); |
| 42 } | 43 } |
| 43 | 44 |
| 44 LayoutScrollbar::LayoutScrollbar(ScrollableArea* scrollableArea, ScrollbarOrient
ation orientation, Node* ownerNode, LocalFrame* owningFrame) | 45 LayoutScrollbar::LayoutScrollbar(ScrollableArea* scrollableArea, ScrollbarOrient
ation orientation, Node* ownerNode, LocalFrame* owningFrame) |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 Scrollbar::trace(visitor); | 90 Scrollbar::trace(visitor); |
| 90 } | 91 } |
| 91 | 92 |
| 92 LayoutBox* LayoutScrollbar::owningLayoutObject() const | 93 LayoutBox* LayoutScrollbar::owningLayoutObject() const |
| 93 { | 94 { |
| 94 if (m_owningFrame) | 95 if (m_owningFrame) |
| 95 return m_owningFrame->ownerLayoutObject(); | 96 return m_owningFrame->ownerLayoutObject(); |
| 96 return m_owner && m_owner->layoutObject() ? m_owner->layoutObject()->enclosi
ngBox() : 0; | 97 return m_owner && m_owner->layoutObject() ? m_owner->layoutObject()->enclosi
ngBox() : 0; |
| 97 } | 98 } |
| 98 | 99 |
| 100 LayoutBox* LayoutScrollbar::owningLayoutObjectWithinFrame() const |
| 101 { |
| 102 if (m_owningFrame) |
| 103 return m_owningFrame->contentLayoutObject(); |
| 104 return owningLayoutObject(); |
| 105 } |
| 106 |
| 99 void LayoutScrollbar::setParent(Widget* parent) | 107 void LayoutScrollbar::setParent(Widget* parent) |
| 100 { | 108 { |
| 101 Scrollbar::setParent(parent); | 109 Scrollbar::setParent(parent); |
| 102 if (!parent) { | 110 if (!parent) { |
| 103 // Destroy all of the scrollbar's LayoutBoxes. | 111 // Destroy all of the scrollbar's LayoutBoxes. |
| 104 updateScrollbarParts(true); | 112 updateScrollbarParts(true); |
| 105 } | 113 } |
| 106 } | 114 } |
| 107 | 115 |
| 108 void LayoutScrollbar::setEnabled(bool e) | 116 void LayoutScrollbar::setEnabled(bool e) |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 int oldThickness = isHorizontal ? height() : width(); | 189 int oldThickness = isHorizontal ? height() : width(); |
| 182 int newThickness = 0; | 190 int newThickness = 0; |
| 183 LayoutScrollbarPart* part = m_parts.get(ScrollbarBGPart); | 191 LayoutScrollbarPart* part = m_parts.get(ScrollbarBGPart); |
| 184 if (part) { | 192 if (part) { |
| 185 part->layout(); | 193 part->layout(); |
| 186 newThickness = isHorizontal ? part->size().height() : part->size().width
(); | 194 newThickness = isHorizontal ? part->size().height() : part->size().width
(); |
| 187 } | 195 } |
| 188 | 196 |
| 189 if (newThickness != oldThickness) { | 197 if (newThickness != oldThickness) { |
| 190 setFrameRect(IntRect(location(), IntSize(isHorizontal ? width() : newThi
ckness, isHorizontal ? newThickness : height()))); | 198 setFrameRect(IntRect(location(), IntSize(isHorizontal ? width() : newThi
ckness, isHorizontal ? newThickness : height()))); |
| 191 if (LayoutBox* box = owningLayoutObject()) { | 199 if (LayoutBox* box = owningLayoutObjectWithinFrame()) { |
| 192 if (box->isLayoutBlock()) | 200 if (box->isLayoutBlock()) |
| 193 toLayoutBlock(box)->notifyScrollbarThicknessChanged(); | 201 toLayoutBlock(box)->notifyScrollbarThicknessChanged(); |
| 194 box->setChildNeedsLayout(); | 202 box->setChildNeedsLayout(); |
| 195 if (RuntimeEnabledFeatures::slimmingPaintEnabled() && m_scrollableAr
ea) | 203 if (RuntimeEnabledFeatures::slimmingPaintEnabled() && m_scrollableAr
ea) |
| 196 m_scrollableArea->invalidateScrollCorner(m_scrollableArea->scrol
lCornerRect()); | 204 m_scrollableArea->invalidateScrollCorner(m_scrollableArea->scrol
lCornerRect()); |
| 197 } | 205 } |
| 198 } | 206 } |
| 199 } | 207 } |
| 200 | 208 |
| 201 static PseudoId pseudoForScrollbarPart(ScrollbarPart part) | 209 static PseudoId pseudoForScrollbarPart(ScrollbarPart part) |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 return; | 370 return; |
| 363 | 371 |
| 364 // FIXME: invalidate only the changed part. | 372 // FIXME: invalidate only the changed part. |
| 365 if (LayoutBox* owningLayoutObject = this->owningLayoutObject()) { | 373 if (LayoutBox* owningLayoutObject = this->owningLayoutObject()) { |
| 366 for (auto& part : m_parts) | 374 for (auto& part : m_parts) |
| 367 owningLayoutObject->invalidateDisplayItemClientForNonCompositingDesc
endantsOf(*part.value); | 375 owningLayoutObject->invalidateDisplayItemClientForNonCompositingDesc
endantsOf(*part.value); |
| 368 } | 376 } |
| 369 } | 377 } |
| 370 | 378 |
| 371 } | 379 } |
| OLD | NEW |