Chromium Code Reviews| Index: Source/core/frame/FrameView.cpp |
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp |
| index fead2c37d5aef382869754e821fde1e16084b94b..3231af4128ba49c0bec7a0c9b2f4ea177455900f 100644 |
| --- a/Source/core/frame/FrameView.cpp |
| +++ b/Source/core/frame/FrameView.cpp |
| @@ -341,6 +341,28 @@ void FrameView::recalculateCustomScrollbarStyle() |
| } |
| } |
| +void FrameView::invalidateAllCustomScrollbarsOnActiveChanged() |
| +{ |
| + const ChildrenWidgetSet* viewChildren = children(); |
| + bool didStyleChange = false; |
| + for (const RefPtrWillBeMember<Widget>& child : *viewChildren) { |
| + Widget* widget = child.get(); |
| + if (widget->isFrameView()) { |
| + toFrameView(widget)->recalculateCustomScrollbarStyle(); |
| + if (toFrameView(widget)->hasCustomScrollbars()) |
|
rune
2014/12/10 08:29:32
hasCustomScrollbars() is traversing the whole widg
MuVen
2014/12/10 08:44:33
yes this is much simpler, I have verified all the
|
| + toFrameView(widget)->invalidateAllCustomScrollbarsOnActiveChanged(); |
| + } else if (widget->isScrollbar() && toScrollbar(widget)->isCustomScrollbar()) { |
| + toScrollbar(widget)->styleChanged(); |
| + didStyleChange = true; |
| + } |
| + } |
| + if (didStyleChange) { |
| + updateScrollbarGeometry(); |
| + updateScrollCorner(); |
| + positionScrollbarLayers(); |
| + } |
| +} |
| + |
| void FrameView::recalculateScrollbarOverlayStyle() |
| { |
| ScrollbarOverlayStyle oldOverlayStyle = scrollbarOverlayStyle(); |