QSize QWebFrameAdapter::customLayoutSize() const { ASSERT(pageAdapter->mainFrameAdapter() == this); FrameView* view = frame->view(); ASSERT(view); if (view->useFixedLayout()) return view->fixedLayoutSize(); return QSize(); }
void QWebFrameAdapter::setCustomLayoutSize(const QSize& size) { ASSERT(pageAdapter->mainFrameAdapter() == this); FrameView* view = frame->view(); ASSERT(view); if (size.isValid()) { view->setUseFixedLayout(true); view->setFixedLayoutSize(size); } else if (view->useFixedLayout()) view->setUseFixedLayout(false); view->layout(); }
void CompositingCoordinator::setVisibleContentsRect(const FloatRect& rect, const FloatPoint& trajectoryVector) { // A zero trajectoryVector indicates that tiles all around the viewport are requested. if (CoordinatedGraphicsLayer* contentsLayer = mainContentsLayer()) contentsLayer->setVisibleContentRectTrajectoryVector(trajectoryVector); bool contentsRectDidChange = rect != m_visibleContentsRect; if (contentsRectDidChange) { m_visibleContentsRect = rect; for (auto& registeredLayer : m_registeredLayers.values()) registeredLayer->setNeedsVisibleRectAdjustment(); } FrameView* view = m_page->mainFrame().view(); if (view->useFixedLayout() && contentsRectDidChange) { // Round the rect instead of enclosing it to make sure that its size stays // the same while panning. This can have nasty effects on layout. view->setFixedVisibleContentRect(roundedIntRect(rect)); } }