LayoutRect RenderView::visualOverflowRect() const { if (frameView().paintsEntireContents()) return layoutOverflowRect(); return RenderBlock::visualOverflowRect(); }
int RenderView::docRight() const { IntRect overflowRect(layoutOverflowRect()); flipForWritingMode(overflowRect); if (hasTransform()) overflowRect = layer()->currentTransform().mapRect(overflowRect); return overflowRect.maxX(); }
LayoutRect RootInlineBox::paddedLayoutOverflowRect(LayoutUnit endPadding) const { LayoutRect lineLayoutOverflow = layoutOverflowRect(lineTop(), lineBottom()); if (!endPadding) return lineLayoutOverflow; // FIXME: Audit whether to use pixel snapped values when not using integers for layout: https://bugs.webkit.org/show_bug.cgi?id=63656 if (isHorizontal()) { if (isLeftToRightDirection()) lineLayoutOverflow.shiftMaxXEdgeTo(std::max<LayoutUnit>(lineLayoutOverflow.maxX(), pixelSnappedLogicalRight() + endPadding)); else lineLayoutOverflow.shiftXEdgeTo(std::min<LayoutUnit>(lineLayoutOverflow.x(), pixelSnappedLogicalLeft() - endPadding)); } else { if (isLeftToRightDirection()) lineLayoutOverflow.shiftMaxYEdgeTo(std::max<LayoutUnit>(lineLayoutOverflow.maxY(), pixelSnappedLogicalRight() + endPadding)); else lineLayoutOverflow.shiftYEdgeTo(std::min<LayoutUnit>(lineLayoutOverflow.y(), pixelSnappedLogicalLeft() - endPadding)); } return lineLayoutOverflow; }
void LayoutMultiColumnFlowThread::layout() { ASSERT(!m_lastSetWorkedOn); m_lastSetWorkedOn = firstMultiColumnSet(); if (m_lastSetWorkedOn) m_lastSetWorkedOn->beginFlow(LayoutUnit()); LayoutFlowThread::layout(); if (LayoutMultiColumnSet* lastSet = lastMultiColumnSet()) { ASSERT(lastSet == m_lastSetWorkedOn); if (!lastSet->nextSiblingMultiColumnBox()) { // Include trailing overflow in the last column set. The idea is that we will generate // additional columns and pages to hold that overflow, since people do write bad content // like <body style="height:0px"> in multi-column layouts. // TODO(mstensho): Once we support nested multicol, adding in overflow here may result // in the need for creating additional rows, since there may not be enough space // remaining in the currently last row. LayoutRect layoutRect = layoutOverflowRect(); LayoutUnit logicalBottomInFlowThread = isHorizontalWritingMode() ? layoutRect.maxY() : layoutRect.maxX(); ASSERT(logicalBottomInFlowThread >= logicalHeight()); lastSet->endFlow(logicalBottomInFlowThread); } } m_lastSetWorkedOn = nullptr; }
IntRect RenderView::unscaledDocumentRect() const { LayoutRect overflowRect(layoutOverflowRect()); flipForWritingMode(overflowRect); return pixelSnappedIntRect(overflowRect); }
IntRect RenderView::unscaledDocumentRect() const { return pixelSnappedIntRect(layoutOverflowRect()); }
IntRect RenderView::unscaledDocumentRect() const { IntRect overflowRect(layoutOverflowRect()); flipForWritingMode(overflowRect); return overflowRect; }