void RotationViewportAnchor::computeOrigins( const FloatSize& innerSize, IntPoint& mainFrameOffset, FloatPoint& visualViewportOffset) const { IntSize outerSize = layoutViewport().visibleContentRect().size(); // Compute the viewport origins in CSS pixels relative to the document. FloatSize absVisualViewportOffset = m_normalizedVisualViewportOffset; absVisualViewportOffset.scale(outerSize.width(), outerSize.height()); FloatPoint innerOrigin = getInnerOrigin(innerSize); FloatPoint outerOrigin = innerOrigin - absVisualViewportOffset; IntRect outerRect = IntRect(flooredIntPoint(outerOrigin), outerSize); FloatRect innerRect = FloatRect(innerOrigin, innerSize); moveToEncloseRect(outerRect, innerRect); outerRect.setLocation(IntPoint( layoutViewport().clampScrollOffset(toIntSize(outerRect.location())))); moveIntoRect(innerRect, outerRect); mainFrameOffset = outerRect.location(); visualViewportOffset = FloatPoint(innerRect.location() - outerRect.location()); }
void ViewportAnchor::computeOrigins(const FrameView& frameView, const FloatSize& innerSize, IntPoint& mainFrameOffset, FloatPoint& pinchViewportOffset) const { IntSize outerSize = frameView.visibleContentRect().size(); // Compute the viewport origins in CSS pixels relative to the document. FloatSize absPinchViewportOffset = m_normalizedPinchViewportOffset; absPinchViewportOffset.scale(outerSize.width(), outerSize.height()); FloatPoint innerOrigin = getInnerOrigin(innerSize); FloatPoint outerOrigin = innerOrigin - absPinchViewportOffset; IntRect outerRect = IntRect(flooredIntPoint(outerOrigin), outerSize); FloatRect innerRect = FloatRect(innerOrigin, innerSize); moveToEncloseRect(outerRect, innerRect); outerRect.setLocation(frameView.adjustScrollPositionWithinRange(outerRect.location())); moveIntoRect(innerRect, outerRect); mainFrameOffset = outerRect.location(); pinchViewportOffset = FloatPoint(innerRect.location() - outerRect.location()); }