Changeset 116632 in webkit
- Timestamp:
- May 10, 2012 5:20:04 AM (12 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r116629 r116632 1 2012-05-10 Kenneth Rohde Christiansen <kenneth@webkit.org> 2 3 [Qt] Implement fit-to-width behaviour 4 https://bugs.webkit.org/show_bug.cgi?id=86085 5 6 Reviewed by Simon Hausmann. 7 8 Add a method to get the minimum scale factor that contains the content 9 without showing any chrome background. 10 11 * dom/ViewportArguments.cpp: 12 (WebCore::computeMinimumScaleFactorForContentContained): 13 (WebCore): 14 * dom/ViewportArguments.h: 15 (WebCore): 16 1 17 2012-05-10 MORITA Hajime <morrita@google.com> 2 18 -
trunk/Source/WebCore/dom/ViewportArguments.cpp
r115998 r116632 186 186 } 187 187 188 float computeMinimumScaleFactorForContentContained(const ViewportAttributes& result, const IntSize& viewportSize, const IntSize& contentsSize) 189 { 190 float availableWidth = viewportSize.width(); 191 float availableHeight = viewportSize.height(); 192 193 if (result.devicePixelRatio != 1.0) { 194 availableWidth /= result.devicePixelRatio; 195 availableHeight /= result.devicePixelRatio; 196 } 197 198 return max<float>(result.minimumScale, max(availableWidth / contentsSize.width(), availableHeight / contentsSize.height())); 199 } 200 188 201 void restrictMinimumScaleFactorToViewportSize(ViewportAttributes& result, IntSize visibleViewport) 189 202 { -
trunk/Source/WebCore/dom/ViewportArguments.h
r115998 r116632 110 110 void restrictMinimumScaleFactorToViewportSize(ViewportAttributes& result, IntSize visibleViewport); 111 111 void restrictScaleFactorToInitialScaleIfNotUserScalable(ViewportAttributes& result); 112 float computeMinimumScaleFactorForContentContained(const ViewportAttributes& result, const IntSize& viewportSize, const IntSize& contentSize); 112 113 113 114 void setViewportFeature(const String& keyString, const String& valueString, Document*, void* data); -
trunk/Source/WebKit2/ChangeLog
r116626 r116632 1 2012-05-10 Kenneth Rohde Christiansen <kenneth@webkit.org> 2 3 [Qt] Implement fit-to-width behaviour 4 https://bugs.webkit.org/show_bug.cgi?id=86085 5 6 Reviewed by Simon Hausmann. 7 8 We don't restrict the minimum scale to the layout viewport anymore, 9 but instead update the minimum scale when the content size changes. 10 11 * UIProcess/API/qt/qquickwebview.cpp: 12 (QQuickWebViewFlickablePrivate::didChangeViewportProperties): 13 (QQuickWebViewFlickablePrivate::didChangeContentsSize): 14 * UIProcess/API/qt/qwebviewportinfo.cpp: 15 (QWebViewportInfo::minimumScale): 16 (QWebViewportInfo::maximumScale): 17 * UIProcess/qt/QtViewportInteractionEngine.h: 18 (QtViewportInteractionEngine): 19 1 20 2012-05-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> 2 21 -
trunk/Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp
r116516 r116632 858 858 Q_Q(QQuickWebView); 859 859 860 QSize viewportSize = q->boundingRect().size().toSize();861 862 860 // FIXME: Revise these when implementing fit-to-width. 863 861 WebCore::ViewportAttributes attr = newAttributes; 864 WebCore::restrictMinimumScaleFactorToViewportSize(attr, viewportSize);865 862 WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable(attr); 866 863 … … 950 947 { 951 948 Q_Q(QQuickWebView); 949 QSize viewportSize = q->boundingRect().size().toSize(); 950 952 951 pageView->setContentsSize(newSize); 953 952 q->experimental()->viewportInfo()->didUpdateContentsSize(); 953 954 float minimumScale = WebCore::computeMinimumScaleFactorForContentContained(attributes, viewportSize, newSize); 955 956 if (!qFuzzyCompare(minimumScale, attributes.minimumScale)) { 957 interactionEngine->setCSSScaleBounds(minimumScale, attributes.maximumScale); 958 q->experimental()->viewportInfo()->didUpdateViewportConstraints(); 959 960 if (!interactionEngine->hadUserInteraction() && !pageIsSuspended) 961 interactionEngine->setCSSScale(minimumScale); 962 } 954 963 } 955 964 -
trunk/Source/WebKit2/UIProcess/API/qt/qwebviewportinfo.cpp
r115998 r116632 63 63 QVariant QWebViewportInfo::minimumScale() const 64 64 { 65 if (QtViewportInteractionEngine* interactionEngine = m_webViewPrivate->viewportInteractionEngine()) 66 return interactionEngine->m_minimumScale; 67 65 68 return m_webViewPrivate->attributes.minimumScale; 66 69 } … … 68 71 QVariant QWebViewportInfo::maximumScale() const 69 72 { 73 if (QtViewportInteractionEngine* interactionEngine = m_webViewPrivate->viewportInteractionEngine()) 74 return interactionEngine->m_maximumScale; 75 70 76 return m_webViewPrivate->attributes.maximumScale; 71 77 } -
trunk/Source/WebKit2/UIProcess/qt/QtViewportInteractionEngine.h
r115022 r116632 35 35 class QWheelEvent; 36 36 QT_END_NAMESPACE 37 38 class QWebViewportInfo; 37 39 38 40 namespace WebKit { … … 115 117 private: 116 118 friend class ViewportUpdateDeferrer; 117 friend class QWebViewportInfo;119 friend class ::QWebViewportInfo; 118 120 119 121 QQuickWebView* const m_viewport;
Note: See TracChangeset
for help on using the changeset viewer.