void SplitTextNodeContainingElementCommand::doApply() { ASSERT(m_text); ASSERT(m_offset > 0); splitTextNode(m_text.get(), m_offset); Node *parentNode = m_text->parentNode(); if (!parentNode->renderer() || !parentNode->renderer()->isInline()) { wrapContentsInDummySpan(static_cast<Element *>(parentNode)); parentNode = parentNode->firstChild(); } splitElement(static_cast<Element *>(parentNode), m_text.get()); }
void SplitTextNodeContainingElementCommand::doApply() { ASSERT(m_text); ASSERT(m_offset > 0); splitTextNode(m_text.get(), m_offset); Element* parent = m_text->parentElement(); if (!parent || !parent->parentElement() || !parent->parentElement()->hasEditableStyle()) return; LayoutObject* parentLayoutObject = parent->layoutObject(); if (!parentLayoutObject || !parentLayoutObject->isInline()) { wrapContentsInDummySpan(parent); Node* firstChild = parent->firstChild(); if (!firstChild || !firstChild->isElementNode()) return; parent = toElement(firstChild); } splitElement(parent, m_text.get()); }
void SplitTextNodeContainingElementCommand::doApply() { ASSERT(m_text); ASSERT(m_offset > 0); splitTextNode(m_text.get(), m_offset); Element* parent = m_text->parentElement(); if (!parent || !parent->parentElement() || !parent->parentElement()->isContentEditable()) return; RenderObject* parentRenderer = parent->renderer(); if (!parentRenderer || !parentRenderer->isInline()) { wrapContentsInDummySpan(parent); Node* firstChild = parent->firstChild(); if (!firstChild || !firstChild->isElementNode()) return; parent = static_cast<Element*>(firstChild); } splitElement(parent, m_text); }
void SplitTextNodeContainingElementCommand::doApply() { ASSERT(m_text); ASSERT(m_offset > 0); splitTextNode(m_text.get(), m_offset); Element* parent = m_text->parentElement(); if (!parent || !parent->parentElement() || !parent->parentElement()->hasEditableStyle()) return; RenderElement* parentRenderer = parent->renderer(); if (!parentRenderer || !parentRenderer->isInline()) { wrapContentsInDummySpan(*parent); Node* firstChild = parent->firstChild(); if (!is<Element>(firstChild)) return; parent = downcast<Element>(firstChild); } splitElement(parent, m_text); }