FloatPoint PageViewportController::clampViewportToContents(const WebCore::FloatPoint& viewportPos, float viewportScale) { const float horizontalRange = std::max(0.f, m_contentsSize.width() - m_viewportSize.width() / viewportScale); const float verticalRange = std::max(0.f, m_contentsSize.height() - m_viewportSize.height() / viewportScale); return FloatPoint(clampTo(viewportPos.x(), 0.f, horizontalRange), clampTo(viewportPos.y(), 0.f, verticalRange)); }
void PageViewportControllerClientEfl::setViewportPosition(const WebCore::FloatPoint& contentsPoint) { m_contentPosition = contentsPoint; WKViewSetContentPosition(m_view->wkView(), WKPointMake(contentsPoint.x(), contentsPoint.y())); m_controller->didChangeContentsVisibility(m_contentPosition, m_controller->currentScale()); }
virtual bool copyAccessibilityAttributeBoolValueForPoint(WebPageOverlay& pageOverlay, String attribute, WebCore::FloatPoint parameter, bool& value) override { if (!m_accessibilityClient.client().copyAccessibilityAttributeValue) return false; auto wkType = m_accessibilityClient.client().copyAccessibilityAttributeValue(toAPI(&pageOverlay), toCopiedAPI(attribute), WKPointCreate(WKPointMake(parameter.x(), parameter.y())), m_accessibilityClient.client().base.clientInfo); if (toImpl(wkType)->type() != API::Boolean::APIType) return false; value = WKBooleanGetValue(static_cast<WKBooleanRef>(wkType)); return true; }