| Index: third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| index 3f60e4de43711e06201bd2321de9454e9a9f3752..18576a98d01f73dcda5de75b6dd1857f4ae63bf3 100644
|
| --- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| +++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
|
| @@ -67,7 +67,8 @@ ScrollableArea::ScrollableArea()
|
| m_verticalScrollbarNeedsPaintInvalidation(false),
|
| m_scrollCornerNeedsPaintInvalidation(false),
|
| m_scrollbarsHidden(false),
|
| - m_scrollbarCaptured(false) {}
|
| + m_scrollbarCaptured(false),
|
| + m_mouseOverScrollbar(false) {}
|
|
|
| ScrollableArea::~ScrollableArea() {}
|
|
|
| @@ -323,13 +324,20 @@ void ScrollableArea::mouseMovedInContentArea() const {
|
| }
|
|
|
| void ScrollableArea::mouseEnteredScrollbar(Scrollbar& scrollbar) {
|
| + m_mouseOverScrollbar = true;
|
| scrollAnimator().mouseEnteredScrollbar(scrollbar);
|
| - // Restart the fade out timer.
|
| showOverlayScrollbars();
|
| + if (m_fadeOverlayScrollbarsTimer)
|
| + m_fadeOverlayScrollbarsTimer->stop();
|
| }
|
|
|
| void ScrollableArea::mouseExitedScrollbar(Scrollbar& scrollbar) {
|
| + m_mouseOverScrollbar = false;
|
| scrollAnimator().mouseExitedScrollbar(scrollbar);
|
| + if (!m_scrollbarsHidden) {
|
| + // This will kick off the fade out timer.
|
| + showOverlayScrollbars();
|
| + }
|
| }
|
|
|
| void ScrollableArea::mouseCapturedScrollbar() {
|
| @@ -574,7 +582,7 @@ void ScrollableArea::showOverlayScrollbars() {
|
| this, &ScrollableArea::fadeOverlayScrollbarsTimerFired));
|
| }
|
|
|
| - if (!m_scrollbarCaptured) {
|
| + if (!m_scrollbarCaptured && !m_mouseOverScrollbar) {
|
| m_fadeOverlayScrollbarsTimer->startOneShot(timeUntilDisable,
|
| BLINK_FROM_HERE);
|
| }
|
|
|