| Index: cc/trees/layer_tree_host_impl.cc
|
| diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
|
| index 480fe3bd0a02fc1e01c29b85dff4709990a58527..ad4d53d11ce045adf0c59042d6ab72dc32a4dc7e 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -2210,6 +2210,7 @@ bool LayerTreeHostImpl::ScrollBy(const gfx::Point& viewport_point,
|
| gfx::Vector2dF unused_root_delta;
|
| bool did_scroll_x = false;
|
| bool did_scroll_y = false;
|
| + bool did_scroll_top_controls = false;
|
| // TODO(wjmaclean) Should we guard against CurrentlyScrollingLayer() == 0
|
| // here?
|
| bool consume_by_top_controls =
|
| @@ -2235,8 +2236,10 @@ bool LayerTreeHostImpl::ScrollBy(const gfx::Point& viewport_point,
|
| applied_delta = pending_delta - excess_delta;
|
| pending_delta = excess_delta;
|
| // Force updating of vertical adjust values if needed.
|
| - if (applied_delta.y() != 0)
|
| + if (applied_delta.y() != 0) {
|
| + did_scroll_top_controls = true;
|
| layer_impl->ScrollbarParametersDidChange();
|
| + }
|
| }
|
| // Track root layer deltas for reporting overscroll.
|
| unused_root_delta = pending_delta;
|
| @@ -2300,8 +2303,8 @@ bool LayerTreeHostImpl::ScrollBy(const gfx::Point& viewport_point,
|
| break;
|
| }
|
|
|
| - bool did_scroll = did_scroll_x || did_scroll_y;
|
| - if (did_scroll) {
|
| + bool did_scroll_content = did_scroll_x || did_scroll_y;
|
| + if (did_scroll_content) {
|
| client_->SetNeedsCommitOnImplThread();
|
| SetNeedsRedraw();
|
| client_->RenewTreePriority();
|
| @@ -2323,7 +2326,7 @@ bool LayerTreeHostImpl::ScrollBy(const gfx::Point& viewport_point,
|
| input_handler_client_->DidOverscroll(params);
|
| }
|
|
|
| - return did_scroll;
|
| + return did_scroll_content || did_scroll_top_controls;
|
| }
|
|
|
| // This implements scrolling by page as described here:
|
|
|