From f474b2b60ec57205facd4eec2181ebe69b686772 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 26 Nov 2012 11:37:00 +0100 Subject: 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 --- .../WebKit2/UIProcess/PageViewportController.cpp | 31 +++++++++++++--------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'Source/WebKit2/UIProcess/PageViewportController.cpp') 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(); } -- cgit v1.2.1