| 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.
All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
| 8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 return isHTMLElement() && document().isHTMLDocument(); | 468 return isHTMLElement() && document().isHTMLDocument(); |
| 469 } | 469 } |
| 470 | 470 |
| 471 void Element::scrollIntoView(bool alignToTop) | 471 void Element::scrollIntoView(bool alignToTop) |
| 472 { | 472 { |
| 473 document().updateLayoutIgnorePendingStylesheets(); | 473 document().updateLayoutIgnorePendingStylesheets(); |
| 474 | 474 |
| 475 if (!layoutObject()) | 475 if (!layoutObject()) |
| 476 return; | 476 return; |
| 477 | 477 |
| 478 bool makeVisibleInVisualViewport = !document().page()->settings().inertVisua
lViewport(); |
| 479 |
| 478 LayoutRect bounds = boundingBox(); | 480 LayoutRect bounds = boundingBox(); |
| 479 // Align to the top / bottom and to the closest edge. | 481 // Align to the top / bottom and to the closest edge. |
| 480 if (alignToTop) | 482 if (alignToTop) |
| 481 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignTopAlways); | 483 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignTopAlways, ProgrammaticScroll, makeVisibleInVisu
alViewport); |
| 482 else | 484 else |
| 483 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignBottomAlways); | 485 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignBottomAlways, ProgrammaticScroll, makeVisibleInV
isualViewport); |
| 484 } | 486 } |
| 485 | 487 |
| 486 void Element::scrollIntoViewIfNeeded(bool centerIfNeeded) | 488 void Element::scrollIntoViewIfNeeded(bool centerIfNeeded) |
| 487 { | 489 { |
| 488 document().updateLayoutIgnorePendingStylesheets(); | 490 document().updateLayoutIgnorePendingStylesheets(); |
| 489 | 491 |
| 490 if (!layoutObject()) | 492 if (!layoutObject()) |
| 491 return; | 493 return; |
| 492 | 494 |
| 495 bool makeVisibleInVisualViewport = !document().page()->settings().inertVisua
lViewport(); |
| 496 |
| 493 LayoutRect bounds = boundingBox(); | 497 LayoutRect bounds = boundingBox(); |
| 494 if (centerIfNeeded) | 498 if (centerIfNeeded) |
| 495 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignCenter
IfNeeded, ScrollAlignment::alignCenterIfNeeded); | 499 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignCenter
IfNeeded, ScrollAlignment::alignCenterIfNeeded, ProgrammaticScroll, makeVisibleI
nVisualViewport); |
| 496 else | 500 else |
| 497 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignToEdgeIfNeeded); | 501 layoutObject()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdge
IfNeeded, ScrollAlignment::alignToEdgeIfNeeded, ProgrammaticScroll, makeVisibleI
nVisualViewport); |
| 498 } | 502 } |
| 499 | 503 |
| 500 void Element::setDistributeScroll(ScrollStateCallback* scrollStateCallback, Stri
ng nativeScrollBehavior) | 504 void Element::setDistributeScroll(ScrollStateCallback* scrollStateCallback, Stri
ng nativeScrollBehavior) |
| 501 { | 505 { |
| 502 scrollStateCallback->setNativeScrollBehavior(ScrollStateCallback::toNativeSc
rollBehavior(nativeScrollBehavior)); | 506 scrollStateCallback->setNativeScrollBehavior(ScrollStateCallback::toNativeSc
rollBehavior(nativeScrollBehavior)); |
| 503 scrollCustomizationCallbacks().setDistributeScroll(this, scrollStateCallback
); | 507 scrollCustomizationCallbacks().setDistributeScroll(this, scrollStateCallback
); |
| 504 } | 508 } |
| 505 | 509 |
| 506 void Element::setApplyScroll(ScrollStateCallback* scrollStateCallback, String na
tiveScrollBehavior) | 510 void Element::setApplyScroll(ScrollStateCallback* scrollStateCallback, String na
tiveScrollBehavior) |
| 507 { | 511 { |
| (...skipping 3061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3569 { | 3573 { |
| 3570 #if ENABLE(OILPAN) | 3574 #if ENABLE(OILPAN) |
| 3571 if (hasRareData()) | 3575 if (hasRareData()) |
| 3572 visitor->trace(elementRareData()); | 3576 visitor->trace(elementRareData()); |
| 3573 visitor->trace(m_elementData); | 3577 visitor->trace(m_elementData); |
| 3574 #endif | 3578 #endif |
| 3575 ContainerNode::trace(visitor); | 3579 ContainerNode::trace(visitor); |
| 3576 } | 3580 } |
| 3577 | 3581 |
| 3578 } // namespace blink | 3582 } // namespace blink |
| OLD | NEW |