double ViewportConfiguration::minimumScale() const { // If we scale to fit, then this is our minimum scale as well. if (!m_configuration.initialScaleIsSet || shouldIgnoreScalingConstraints()) return initialScale(); // If not, we still need to sanity check our value. double minimumScale = m_configuration.minimumScale; if (m_forceAlwaysUserScalable) minimumScale = std::min(minimumScale, forceAlwaysUserScalableMinimumScale); const FloatSize& minimumLayoutSize = m_minimumLayoutSize; double contentWidth = m_contentSize.width(); if (contentWidth > 0 && contentWidth * minimumScale < minimumLayoutSize.width() && !shouldIgnoreVerticalScalingConstraints()) minimumScale = minimumLayoutSize.width() / contentWidth; double contentHeight = m_contentSize.height(); if (contentHeight > 0 && contentHeight * minimumScale < minimumLayoutSize.height() && !shouldIgnoreHorizontalScalingConstraints()) minimumScale = minimumLayoutSize.height() / contentHeight; minimumScale = std::min(std::max(minimumScale, m_configuration.minimumScale), m_configuration.maximumScale); return minimumScale; }
bool ViewportConfiguration::allowsUserScaling() const { return m_forceAlwaysUserScalable || shouldIgnoreScalingConstraints() || m_configuration.allowsUserScaling; }
double ViewportConfiguration::initialScale() const { return initialScaleFromSize(m_contentSize.width() > 0 ? m_contentSize.width() : layoutWidth(), m_contentSize.height() > 0 ? m_contentSize.height() : layoutHeight(), shouldIgnoreScalingConstraints()); }