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 2084 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2095 } | 2095 } |
2096 } | 2096 } |
2097 | 2097 |
2098 HostWindow* FrameView::getHostWindow() const { | 2098 HostWindow* FrameView::getHostWindow() const { |
2099 Page* page = frame().page(); | 2099 Page* page = frame().page(); |
2100 if (!page) | 2100 if (!page) |
2101 return nullptr; | 2101 return nullptr; |
2102 return &page->chromeClient(); | 2102 return &page->chromeClient(); |
2103 } | 2103 } |
2104 | 2104 |
2105 SmoothScrollSequencer* FrameView::getSmoothScrollSequencer() const { | |
2106 Page* page = frame().page(); | |
2107 if (!page) | |
2108 return nullptr; | |
2109 return page->smoothScrollSequencer(); | |
2110 } | |
2111 | |
2105 void FrameView::contentsResized() { | 2112 void FrameView::contentsResized() { |
2106 if (m_frame->isMainFrame() && m_frame->document()) { | 2113 if (m_frame->isMainFrame() && m_frame->document()) { |
2107 if (TextAutosizer* textAutosizer = m_frame->document()->textAutosizer()) | 2114 if (TextAutosizer* textAutosizer = m_frame->document()->textAutosizer()) |
2108 textAutosizer->updatePageInfoInAllFrames(); | 2115 textAutosizer->updatePageInfoInAllFrames(); |
2109 } | 2116 } |
2110 | 2117 |
2111 ScrollableArea::contentsResized(); | 2118 ScrollableArea::contentsResized(); |
2112 setNeedsLayout(); | 2119 setNeedsLayout(); |
2113 } | 2120 } |
2114 | 2121 |
(...skipping 2374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4489 return false; | 4496 return false; |
4490 } | 4497 } |
4491 | 4498 |
4492 FrameViewBase* FrameView::getFrameViewBase() { | 4499 FrameViewBase* FrameView::getFrameViewBase() { |
4493 return this; | 4500 return this; |
4494 } | 4501 } |
4495 | 4502 |
4496 LayoutRect FrameView::scrollIntoView(const LayoutRect& rectInContent, | 4503 LayoutRect FrameView::scrollIntoView(const LayoutRect& rectInContent, |
4497 const ScrollAlignment& alignX, | 4504 const ScrollAlignment& alignX, |
4498 const ScrollAlignment& alignY, | 4505 const ScrollAlignment& alignY, |
4499 ScrollType scrollType) { | 4506 ScrollType scrollType, |
4507 bool isSmooth) { | |
4500 LayoutRect viewRect(visibleContentRect()); | 4508 LayoutRect viewRect(visibleContentRect()); |
4501 LayoutRect exposeRect = | 4509 LayoutRect exposeRect = |
4502 ScrollAlignment::getRectToExpose(viewRect, rectInContent, alignX, alignY); | 4510 ScrollAlignment::getRectToExpose(viewRect, rectInContent, alignX, alignY); |
4503 if (exposeRect != viewRect) { | 4511 if (exposeRect != viewRect) { |
4504 setScrollOffset( | 4512 ScrollOffset targetOffset(exposeRect.x().toFloat(), |
4505 ScrollOffset(exposeRect.x().toFloat(), exposeRect.y().toFloat()), | 4513 exposeRect.y().toFloat()); |
4506 scrollType); | 4514 if (isSmooth) { |
4515 DCHECK(scrollType != UserScroll); | |
4516 getSmoothScrollSequencer()->queueAnimation(this, targetOffset); | |
4517 } else { | |
4518 setScrollOffset(targetOffset, scrollType); | |
4519 } | |
4507 } | 4520 } |
4508 | |
bokan
2017/04/07 15:56:52
Nit: the blank line was fine
sunyunjia
2017/05/12 18:40:25
Done.
| |
4509 // Scrolling the FrameView cannot change the input rect's location relative to | 4521 // Scrolling the FrameView cannot change the input rect's location relative to |
4510 // the document. | 4522 // the document. |
4511 return rectInContent; | 4523 return rectInContent; |
4512 } | 4524 } |
4513 | 4525 |
4514 IntRect FrameView::scrollCornerRect() const { | 4526 IntRect FrameView::scrollCornerRect() const { |
4515 IntRect cornerRect; | 4527 IntRect cornerRect; |
4516 | 4528 |
4517 if (hasOverlayScrollbars()) | 4529 if (hasOverlayScrollbars()) |
4518 return cornerRect; | 4530 return cornerRect; |
(...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5267 void FrameView::setAnimationHost( | 5279 void FrameView::setAnimationHost( |
5268 std::unique_ptr<CompositorAnimationHost> host) { | 5280 std::unique_ptr<CompositorAnimationHost> host) { |
5269 m_animationHost = std::move(host); | 5281 m_animationHost = std::move(host); |
5270 } | 5282 } |
5271 | 5283 |
5272 LayoutUnit FrameView::caretWidth() const { | 5284 LayoutUnit FrameView::caretWidth() const { |
5273 return LayoutUnit(getHostWindow()->windowToViewportScalar(1)); | 5285 return LayoutUnit(getHostWindow()->windowToViewportScalar(1)); |
5274 } | 5286 } |
5275 | 5287 |
5276 } // namespace blink | 5288 } // namespace blink |
OLD | NEW |