Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
| 5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc. |
| 8 * All rights reserved. | 8 * All rights reserved. |
| 9 * (C) 2007 Eric Seidel (eric@webkit.org) | 9 * (C) 2007 Eric Seidel (eric@webkit.org) |
| 10 * | 10 * |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 521 scroll_state.DeltaConsumedForScrollSequence() && | 521 scroll_state.DeltaConsumedForScrollSequence() && |
| 522 scroll_state.CurrentNativeScrollingElement() != this) { | 522 scroll_state.CurrentNativeScrollingElement() != this) { |
| 523 return; | 523 return; |
| 524 } | 524 } |
| 525 | 525 |
| 526 const double delta_x = scroll_state.deltaX(); | 526 const double delta_x = scroll_state.deltaX(); |
| 527 const double delta_y = scroll_state.deltaY(); | 527 const double delta_y = scroll_state.deltaY(); |
| 528 | 528 |
| 529 CallApplyScroll(scroll_state); | 529 CallApplyScroll(scroll_state); |
| 530 | 530 |
| 531 if (delta_x != scroll_state.deltaX() || delta_y != scroll_state.deltaY()) | 531 if (delta_x != scroll_state.deltaX() || delta_y != scroll_state.deltaY()) { |
| 532 scroll_state.SetCurrentNativeScrollingElement(this); | 532 scroll_state.SetCurrentNativeScrollingElement(this); |
| 533 } | |
|
bokan
2017/05/19 19:35:57
Nit: no braces
sunyunjia
2017/05/25 20:07:10
Done.
| |
| 533 } | 534 } |
| 534 | 535 |
| 535 void Element::CallDistributeScroll(ScrollState& scroll_state) { | 536 void Element::CallDistributeScroll(ScrollState& scroll_state) { |
| 536 ScrollStateCallback* callback = | 537 ScrollStateCallback* callback = |
| 537 GetScrollCustomizationCallbacks().GetDistributeScroll(this); | 538 GetScrollCustomizationCallbacks().GetDistributeScroll(this); |
| 538 | 539 |
| 539 // TODO(bokan): Need to add tests before we allow calling custom callbacks | 540 // TODO(bokan): Need to add tests before we allow calling custom callbacks |
| 540 // for non-touch modalities. For now, just call into the native callback but | 541 // for non-touch modalities. For now, just call into the native callback but |
| 541 // allow the viewport scroll callback so we don't disable overscroll. | 542 // allow the viewport scroll callback so we don't disable overscroll. |
| 542 // crbug.com/623079. | 543 // crbug.com/623079. |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 586 | 587 |
| 587 if (!box_to_scroll) | 588 if (!box_to_scroll) |
| 588 return; | 589 return; |
| 589 | 590 |
| 590 ScrollResult result = LayoutBoxItem(box_to_scroll) | 591 ScrollResult result = LayoutBoxItem(box_to_scroll) |
| 591 .EnclosingBox() | 592 .EnclosingBox() |
| 592 .Scroll(ScrollGranularity(static_cast<int>( | 593 .Scroll(ScrollGranularity(static_cast<int>( |
| 593 scroll_state.deltaGranularity())), | 594 scroll_state.deltaGranularity())), |
| 594 delta); | 595 delta); |
| 595 | 596 |
| 596 if (!result.DidScroll()) | 597 if (!result.DidScroll()) { |
| 598 if (GetComputedStyle()->ScrollBoundaryBehaviorX() != | |
|
bokan
2017/05/19 19:35:57
Similarly, this should be done at the time that we
sunyunjia
2017/05/25 20:07:10
Done.
| |
| 599 EScrollBoundaryBehavior::kAuto && | |
| 600 std::abs(delta.Width()) > std::abs(delta.Height())) | |
| 601 scroll_state.ConsumeDeltaNative(delta.Width(), 0); | |
| 602 if (GetComputedStyle()->ScrollBoundaryBehaviorY() != | |
| 603 EScrollBoundaryBehavior::kAuto && | |
| 604 std::abs(delta.Height()) > std::abs(delta.Width())) | |
| 605 scroll_state.ConsumeDeltaNative(0, delta.Height()); | |
| 597 return; | 606 return; |
| 607 } | |
| 598 | 608 |
| 599 // FIXME: Native scrollers should only consume the scroll they | 609 // FIXME: Native scrollers should only consume the scroll they |
| 600 // apply. See crbug.com/457765. | 610 // apply. See crbug.com/457765. |
| 601 scroll_state.ConsumeDeltaNative(delta.Width(), delta.Height()); | 611 scroll_state.ConsumeDeltaNative(delta.Width(), delta.Height()); |
| 602 | 612 |
| 603 // We need to setCurrentNativeScrollingElement in both the | 613 // We need to setCurrentNativeScrollingElement in both the |
| 604 // distributeScroll and applyScroll default implementations so | 614 // distributeScroll and applyScroll default implementations so |
| 605 // that if JS overrides one of these methods, but not the | 615 // that if JS overrides one of these methods, but not the |
| 606 // other, this bookkeeping remains accurate. | 616 // other, this bookkeeping remains accurate. |
| 607 scroll_state.SetCurrentNativeScrollingElement(this); | 617 scroll_state.SetCurrentNativeScrollingElement(this); |
| (...skipping 3740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4348 } | 4358 } |
| 4349 | 4359 |
| 4350 DEFINE_TRACE_WRAPPERS(Element) { | 4360 DEFINE_TRACE_WRAPPERS(Element) { |
| 4351 if (HasRareData()) { | 4361 if (HasRareData()) { |
| 4352 visitor->TraceWrappers(GetElementRareData()); | 4362 visitor->TraceWrappers(GetElementRareData()); |
| 4353 } | 4363 } |
| 4354 ContainerNode::TraceWrappers(visitor); | 4364 ContainerNode::TraceWrappers(visitor); |
| 4355 } | 4365 } |
| 4356 | 4366 |
| 4357 } // namespace blink | 4367 } // namespace blink |
| OLD | NEW |