private function isNodeInSameRowAsPreviousSibling(Node $node, Node $previousSibling) { $oneOfNodesIsInline = $previousSibling->isInline() && $node->isInline(); if (!$oneOfNodesIsInline) { return false; } $parent = $node->getParent(); $parentBoundary = $parent->getBoundary(); list($prevX) = $previousSibling->getEndDrawingPoint(); $endX = $prevX + $previousSibling->getMarginRight() + $node->getMarginLeft() + $node->getWidth(); $parentEndX = $parentBoundary->getFirstPoint()->getX() + $parent->getWidth(); $rowIsOverflowed = !$node instanceof Nodes\Text && $parentEndX < $endX && $previousSibling->getFloat() !== Nodes\Node::FLOAT_RIGHT; return !$rowIsOverflowed; }