Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(649)

Unified Diff: Source/core/page/Page.cpp

Issue 14813025: Refactor viewport initialization logic out of WebViewImpl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add tests for new behavior Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/page/Page.cpp
diff --git a/Source/core/page/Page.cpp b/Source/core/page/Page.cpp
index 6c7942b237f980b442317913cffe51b832aaa08b..dcbef4dd45ba52b2d87d520bd3ee48622a253560 100644
--- a/Source/core/page/Page.cpp
+++ b/Source/core/page/Page.cpp
@@ -447,24 +447,25 @@ void Page::setPageScaleFactor(float scale, const IntPoint& origin)
{
FrameView* view = mainFrame()->view();
- if (scale == m_pageScaleFactor) {
- if (view && view->scrollPosition() != origin)
- view->setScrollPosition(origin);
- return;
- }
+ bool oldProgrammaticScroll = view->inProgrammaticScroll();
dshwang 2013/05/13 12:38:01 It is so confusing. How about extracting scroll so
aelias_OOO_until_Jul13 2013/05/13 18:13:06 The reason is that changing page scale may have th
+ view->setInProgrammaticScroll(false);
- m_pageScaleFactor = scale;
+ if (scale != m_pageScaleFactor) {
+ m_pageScaleFactor = scale;
- if (view)
- view->setVisibleContentScaleFactor(scale);
+ if (view)
+ view->setVisibleContentScaleFactor(scale);
- mainFrame()->deviceOrPageScaleFactorChanged();
+ mainFrame()->deviceOrPageScaleFactorChanged();
- if (view)
- view->setViewportConstrainedObjectsNeedLayout();
+ if (view)
+ view->setViewportConstrainedObjectsNeedLayout();
+ }
if (view && view->scrollPosition() != origin)
- view->setScrollPosition(origin);
+ view->notifyScrollPositionChanged(origin);
+
+ view->setInProgrammaticScroll(oldProgrammaticScroll);
}
void Page::setDeviceScaleFactor(float scaleFactor)

Powered by Google App Engine
This is Rietveld 408576698