| Index: Source/core/html/HTMLBodyElement.cpp
|
| diff --git a/Source/core/html/HTMLBodyElement.cpp b/Source/core/html/HTMLBodyElement.cpp
|
| index 28554423bed4212612bbfbd4b60c7d6bff88fe56..6b93effb203fb92b7454e698dc3ae0f43ef7d689 100644
|
| --- a/Source/core/html/HTMLBodyElement.cpp
|
| +++ b/Source/core/html/HTMLBodyElement.cpp
|
| @@ -228,7 +228,7 @@ int HTMLBodyElement::scrollLeft()
|
| return view ? adjustForZoom(view->scrollX(), &document) : 0;
|
| }
|
|
|
| -void HTMLBodyElement::setScrollLeft(int scrollLeft)
|
| +void HTMLBodyElement::setScrollLeftInternal(int scrollLeft, ScrollBehavior scrollBehavior)
|
| {
|
| Document& document = this->document();
|
| document.updateLayoutIgnorePendingStylesheets();
|
| @@ -239,7 +239,7 @@ void HTMLBodyElement::setScrollLeft(int scrollLeft)
|
| return;
|
| if (render->hasOverflowClip()) {
|
| // FIXME: Investigate how are other browsers casting to int (rounding, ceiling, ...).
|
| - render->setScrollLeft(static_cast<int>(scrollLeft * render->style()->effectiveZoom()));
|
| + render->setScrollLeft(static_cast<int>(scrollLeft * render->style()->effectiveZoom()), scrollBehavior);
|
| return;
|
| }
|
| if (!document.inQuirksMode())
|
| @@ -252,7 +252,7 @@ void HTMLBodyElement::setScrollLeft(int scrollLeft)
|
| FrameView* view = frame->view();
|
| if (!view)
|
| return;
|
| - view->setScrollPosition(IntPoint(static_cast<int>(scrollLeft * frame->pageZoomFactor()), view->scrollY()));
|
| + view->setScrollPosition(IntPoint(static_cast<int>(scrollLeft * frame->pageZoomFactor()), view->scrollY()), scrollBehavior);
|
| }
|
|
|
| int HTMLBodyElement::scrollTop()
|
| @@ -274,7 +274,7 @@ int HTMLBodyElement::scrollTop()
|
| return view ? adjustForZoom(view->scrollY(), &document) : 0;
|
| }
|
|
|
| -void HTMLBodyElement::setScrollTop(int scrollTop)
|
| +void HTMLBodyElement::setScrollTopInternal(int scrollTop, ScrollBehavior scrollBehavior)
|
| {
|
| Document& document = this->document();
|
| document.updateLayoutIgnorePendingStylesheets();
|
| @@ -285,7 +285,7 @@ void HTMLBodyElement::setScrollTop(int scrollTop)
|
| return;
|
| if (render->hasOverflowClip()) {
|
| // FIXME: Investigate how are other browsers casting to int (rounding, ceiling, ...).
|
| - render->setScrollTop(static_cast<int>(scrollTop * render->style()->effectiveZoom()));
|
| + render->setScrollTop(static_cast<int>(scrollTop * render->style()->effectiveZoom()), scrollBehavior);
|
| return;
|
| }
|
| if (!document.inQuirksMode())
|
| @@ -298,7 +298,7 @@ void HTMLBodyElement::setScrollTop(int scrollTop)
|
| FrameView* view = frame->view();
|
| if (!view)
|
| return;
|
| - view->setScrollPosition(IntPoint(view->scrollX(), static_cast<int>(scrollTop * frame->pageZoomFactor())));
|
| + view->setScrollPosition(IntPoint(view->scrollX(), static_cast<int>(scrollTop * frame->pageZoomFactor())), scrollBehavior);
|
| }
|
|
|
| int HTMLBodyElement::scrollHeight()
|
|
|