Element* FormatBlockCommand::elementForFormatBlockCommand(Range* range) { if (!range) return 0; ExceptionCode ec; Node* commonAncestor = range->commonAncestorContainer(ec); while (commonAncestor && !isElementForFormatBlock(commonAncestor)) commonAncestor = commonAncestor->parentNode(); if (!commonAncestor) return 0; ASSERT(commonAncestor->isElementNode()); return static_cast<Element*>(commonAncestor); }
Element* FormatBlockCommand::elementForFormatBlockCommand(Range* range) { if (!range) return 0; Node* commonAncestor = range->commonAncestorContainer(); while (commonAncestor && !isElementForFormatBlock(commonAncestor)) commonAncestor = commonAncestor->parentNode(); if (!commonAncestor) return 0; Element* rootEditableElement = range->startContainer()->rootEditableElement(); if (!rootEditableElement || commonAncestor->contains(rootEditableElement)) return 0; return commonAncestor->isElementNode() ? toElement(commonAncestor) : 0; }