Chromium Code Reviews| Index: third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp |
| diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp |
| index 3a64da20ff27cc8540beb7a5f16fa4fe72774714..08995a430ac8fca7eea22fcd79aa36bb8e61aab6 100644 |
| --- a/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp |
| +++ b/third_party/WebKit/Source/core/page/scrolling/ScrollingCoordinator.cpp |
| @@ -686,10 +686,15 @@ void ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread(MainTh |
| return; |
| if (WebLayer* scrollLayer = toWebLayer(m_page->deprecatedLocalMainFrame()->view()->layerForScrolling())) { |
| m_lastMainThreadScrollingReasons = mainThreadScrollingReasons; |
| - if (mainThreadScrollingReasons) |
| + if (mainThreadScrollingReasons) { |
| scrollLayer->addMainThreadScrollingReasons(mainThreadScrollingReasons); |
| - else |
| - scrollLayer->clearMainThreadScrollingReasons(); |
| + } else { |
| + // Clear all main thread scrolling reasons except the one that's set |
| + // if there is a running scroll animation. |
| + uint32_t mainThreadScrollingReasonsToClear = ~0; |
|
skobes
2016/02/04 20:04:40
I had to change this to ~0u to compile on Windows.
ymalik
2016/02/04 21:53:20
Thanks! Fixed.
|
| + mainThreadScrollingReasonsToClear &= ~MainThreadScrollingReason::kAnimatingScollOnMainThread; |
| + scrollLayer->clearMainThreadScrollingReasons(mainThreadScrollingReasonsToClear); |
| + } |
| } |
| } |