Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
| 3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
| 4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
| 5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
| 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
| 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 10 * | 10 * |
| (...skipping 2042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2053 } | 2053 } |
| 2054 } | 2054 } |
| 2055 | 2055 |
| 2056 HostWindow* FrameView::getHostWindow() const { | 2056 HostWindow* FrameView::getHostWindow() const { |
| 2057 Page* page = frame().page(); | 2057 Page* page = frame().page(); |
| 2058 if (!page) | 2058 if (!page) |
| 2059 return nullptr; | 2059 return nullptr; |
| 2060 return &page->chromeClient(); | 2060 return &page->chromeClient(); |
| 2061 } | 2061 } |
| 2062 | 2062 |
| 2063 ProgrammaticScrollCoordinator* FrameView::getProgrammaticScrollCoordinator() | |
| 2064 const { | |
| 2065 Page* page = frame().page(); | |
| 2066 if (!page) | |
| 2067 return nullptr; | |
| 2068 return page->scrollingCoordinator()->programmaticScrollCoordinator(); | |
| 2069 } | |
| 2070 | |
| 2063 void FrameView::contentsResized() { | 2071 void FrameView::contentsResized() { |
| 2064 if (m_frame->isMainFrame() && m_frame->document()) { | 2072 if (m_frame->isMainFrame() && m_frame->document()) { |
| 2065 if (TextAutosizer* textAutosizer = m_frame->document()->textAutosizer()) | 2073 if (TextAutosizer* textAutosizer = m_frame->document()->textAutosizer()) |
| 2066 textAutosizer->updatePageInfoInAllFrames(); | 2074 textAutosizer->updatePageInfoInAllFrames(); |
| 2067 } | 2075 } |
| 2068 | 2076 |
| 2069 ScrollableArea::contentsResized(); | 2077 ScrollableArea::contentsResized(); |
| 2070 setNeedsLayout(); | 2078 setNeedsLayout(); |
| 2071 } | 2079 } |
| 2072 | 2080 |
| (...skipping 2377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4450 return false; | 4458 return false; |
| 4451 } | 4459 } |
| 4452 | 4460 |
| 4453 Widget* FrameView::getWidget() { | 4461 Widget* FrameView::getWidget() { |
| 4454 return this; | 4462 return this; |
| 4455 } | 4463 } |
| 4456 | 4464 |
| 4457 LayoutRect FrameView::scrollIntoView(const LayoutRect& rectInContent, | 4465 LayoutRect FrameView::scrollIntoView(const LayoutRect& rectInContent, |
| 4458 const ScrollAlignment& alignX, | 4466 const ScrollAlignment& alignX, |
| 4459 const ScrollAlignment& alignY, | 4467 const ScrollAlignment& alignY, |
| 4460 ScrollType scrollType) { | 4468 ScrollType scrollType, |
| 4469 bool isSmooth) { | |
| 4461 LayoutRect viewRect(visibleContentRect()); | 4470 LayoutRect viewRect(visibleContentRect()); |
| 4462 LayoutRect exposeRect = | 4471 LayoutRect exposeRect = |
| 4463 ScrollAlignment::getRectToExpose(viewRect, rectInContent, alignX, alignY); | 4472 ScrollAlignment::getRectToExpose(viewRect, rectInContent, alignX, alignY); |
| 4464 if (exposeRect != viewRect) { | 4473 if (exposeRect != viewRect) { |
| 4465 setScrollOffset( | 4474 if (isSmooth) { |
| 4466 ScrollOffset(exposeRect.x().toFloat(), exposeRect.y().toFloat()), | 4475 DCHECK(scrollType != UserScroll); |
| 4467 scrollType); | 4476 getProgrammaticScrollCoordinator()->queueAnimation( |
| 4477 this, | |
| 4478 ScrollOffset(exposeRect.x().toFloat(), exposeRect.y().toFloat())); | |
|
bokan
2017/03/28 16:29:53
Store the ScrollOffset in a variable above, outsid
sunyunjia
2017/04/07 13:53:20
Done.
| |
| 4479 } else { | |
| 4480 setScrollOffset( | |
| 4481 ScrollOffset(exposeRect.x().toFloat(), exposeRect.y().toFloat()), | |
| 4482 scrollType); | |
| 4483 } | |
| 4468 } | 4484 } |
| 4469 | |
| 4470 // Scrolling the FrameView cannot change the input rect's location relative to | 4485 // Scrolling the FrameView cannot change the input rect's location relative to |
| 4471 // the document. | 4486 // the document. |
| 4472 return rectInContent; | 4487 return rectInContent; |
| 4473 } | 4488 } |
| 4474 | 4489 |
| 4475 IntRect FrameView::scrollCornerRect() const { | 4490 IntRect FrameView::scrollCornerRect() const { |
| 4476 IntRect cornerRect; | 4491 IntRect cornerRect; |
| 4477 | 4492 |
| 4478 if (hasOverlayScrollbars()) | 4493 if (hasOverlayScrollbars()) |
| 4479 return cornerRect; | 4494 return cornerRect; |
| (...skipping 705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5185 void FrameView::setAnimationHost( | 5200 void FrameView::setAnimationHost( |
| 5186 std::unique_ptr<CompositorAnimationHost> host) { | 5201 std::unique_ptr<CompositorAnimationHost> host) { |
| 5187 m_animationHost = std::move(host); | 5202 m_animationHost = std::move(host); |
| 5188 } | 5203 } |
| 5189 | 5204 |
| 5190 LayoutUnit FrameView::caretWidth() const { | 5205 LayoutUnit FrameView::caretWidth() const { |
| 5191 return LayoutUnit(getHostWindow()->windowToViewportScalar(1)); | 5206 return LayoutUnit(getHostWindow()->windowToViewportScalar(1)); |
| 5192 } | 5207 } |
| 5193 | 5208 |
| 5194 } // namespace blink | 5209 } // namespace blink |
| OLD | NEW |