String HitTestResult::innerTextIfTruncated(TextDirection& dir) const { for (Node* truncatedNode = m_innerNode.get(); truncatedNode; truncatedNode = truncatedNode->parentNode()) { if (!truncatedNode->isElementNode()) continue; if (RenderObject* renderer = truncatedNode->renderer()) { if (renderer->isRenderBlock()) { RenderBlock* block = toRenderBlock(renderer); if (block->style()->textOverflow()) { for (RootInlineBox* line = block->firstRootBox(); line; line = line->nextRootBox()) { if (line->hasEllipsisBox()) { dir = block->style()->direction(); return toElement(truncatedNode)->innerText(); } } } break; } } } dir = LTR; return String(); }
String HitTestResult::innerTextIfTruncated(TextDirection& dir) const { for (Node* truncatedNode = m_innerNode.get(); truncatedNode; truncatedNode = truncatedNode->parentNode()) { if (!is<Element>(*truncatedNode)) continue; if (auto renderer = downcast<Element>(*truncatedNode).renderer()) { if (is<RenderBlockFlow>(*renderer)) { RenderBlockFlow& block = downcast<RenderBlockFlow>(*renderer); if (block.style().textOverflow()) { for (RootInlineBox* line = block.firstRootBox(); line; line = line->nextRootBox()) { if (line->hasEllipsisBox()) { dir = block.style().direction(); return downcast<Element>(*truncatedNode).innerText(); } } } break; } } } dir = LTR; return String(); }