summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/PageViewportController.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-26 11:37:00 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-26 11:36:36 +0100
commitf474b2b60ec57205facd4eec2181ebe69b686772 (patch)
tree42a132541a82c97039ea8a98b40e5012187ede28 /Source/WebKit2/UIProcess/PageViewportController.cpp
parent061d58bc0fa016cfeed744fd3e4663460635d69b (diff)
downloadqtwebkit-f474b2b60ec57205facd4eec2181ebe69b686772.tar.gz
Imported WebKit commit 76dac539db7ece7079963adfcfe878d8e2f7d861 (http://svn.webkit.org/repository/webkit/trunk@135696)
New snapshot that fixes build after QMacStyle removal Change-Id: Idea95c96c73b49158d52861db2a4b8d2c51766b0 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'Source/WebKit2/UIProcess/PageViewportController.cpp')
-rw-r--r--Source/WebKit2/UIProcess/PageViewportController.cpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/Source/WebKit2/UIProcess/PageViewportController.cpp b/Source/WebKit2/UIProcess/PageViewportController.cpp
index 5de791920..7c43a5546 100644
--- a/Source/WebKit2/UIProcess/PageViewportController.cpp
+++ b/Source/WebKit2/UIProcess/PageViewportController.cpp
@@ -44,6 +44,7 @@ PageViewportController::PageViewportController(WebKit::WebPageProxy* proxy, Page
, m_client(client)
, m_allowsUserScaling(false)
, m_minimumScaleToFit(1)
+ , m_initiallyFitToViewport(true)
, m_hasSuspendedContent(false)
, m_hadUserInteraction(false)
, m_effectiveScale(1)
@@ -109,7 +110,17 @@ void PageViewportController::didCommitLoad()
void PageViewportController::didChangeContentsSize(const IntSize& newSize)
{
m_contentsSize = newSize;
- if (updateMinimumScaleToFit())
+
+ bool minimumScaleUpdated = updateMinimumScaleToFit();
+
+ if (m_initiallyFitToViewport) {
+ // Restrict scale factors to m_minimumScaleToFit.
+ ASSERT(m_minimumScaleToFit > 0);
+ m_rawAttributes.initialScale = m_minimumScaleToFit;
+ WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(m_rawAttributes);
+ }
+
+ if (minimumScaleUpdated)
m_client->didChangeViewportAttributes();
}
@@ -149,8 +160,8 @@ void PageViewportController::pageTransitionViewportReady()
{
if (!m_rawAttributes.layoutSize.isEmpty()) {
m_hadUserInteraction = false;
- ASSERT(m_rawAttributes.initialScale > 0);
- applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(m_rawAttributes.initialScale)));
+ float initialScale = m_initiallyFitToViewport ? m_minimumScaleToFit : m_rawAttributes.initialScale;
+ applyScaleAfterRenderingContents(innerBoundedViewportScale(toViewportScale(initialScale)));
}
// At this point we should already have received the first viewport arguments and the requested scroll
@@ -218,18 +229,12 @@ void PageViewportController::didChangeViewportAttributes(const WebCore::Viewport
m_rawAttributes = newAttributes;
m_allowsUserScaling = !!m_rawAttributes.userScalable;
+ m_initiallyFitToViewport = (m_rawAttributes.initialScale < 0);
- bool minimumScaleUpdated = updateMinimumScaleToFit();
-
- ASSERT(m_minimumScaleToFit > 0);
-
- // Set the initial scale if it was not specified in the viewport meta tag.
- if (m_rawAttributes.initialScale < 0)
- m_rawAttributes.initialScale = m_minimumScaleToFit;
+ if (!m_initiallyFitToViewport)
+ WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(m_rawAttributes);
- WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(m_rawAttributes);
-
- if (minimumScaleUpdated)
+ if (updateMinimumScaleToFit())
m_client->didChangeViewportAttributes();
}