bool InlineBox::previousOnLineExists() const { if (!parent()) return false; if (prevOnLine()) return true; return parent()->previousOnLineExists(); }
InlineBox* InlineBox::prevLeafChild() const { InlineBox* leaf = 0; for (InlineBox* box = prevOnLine(); box && !leaf; box = box->prevOnLine()) leaf = box->isLeaf() ? box : toInlineFlowBox(box)->lastLeafChild(); if (!leaf && parent()) leaf = parent()->prevLeafChild(); return leaf; }
bool InlineBox::prevOnLineExists() const { if (!m_determinedIfPrevOnLineExists) { m_determinedIfPrevOnLineExists = true; if (!parent()) m_prevOnLineExists = false; else if (prevOnLine()) m_prevOnLineExists = true; else m_prevOnLineExists = parent()->prevOnLineExists(); } return m_prevOnLineExists; }