Index: sky/engine/core/dom/Position.cpp |
diff --git a/sky/engine/core/dom/Position.cpp b/sky/engine/core/dom/Position.cpp |
index d7093bb4bb8396264ca867fbcaed4b411b0fc01c..8cd1499aee4018567acf724217c029ee7fc34dab 100644 |
--- a/sky/engine/core/dom/Position.cpp |
+++ b/sky/engine/core/dom/Position.cpp |
@@ -416,18 +416,16 @@ Node* Position::parentEditingBoundary() const |
if (!m_anchorNode) |
return 0; |
- Node* documentElement = m_anchorNode->document().documentElement(); |
- if (!documentElement) |
- return 0; |
- |
+ // FIXME: Why does this look at parentNode? |
Node* boundary = m_anchorNode.get(); |
- while (boundary != documentElement && boundary->nonShadowBoundaryParentNode() && m_anchorNode->hasEditableStyle() == boundary->parentNode()->hasEditableStyle()) |
+ while (boundary->nonShadowBoundaryParentNode() |
+ && boundary->nonShadowBoundaryParentNode()->isElementNode() |
+ && m_anchorNode->hasEditableStyle() == boundary->parentNode()->hasEditableStyle()) |
boundary = boundary->nonShadowBoundaryParentNode(); |
return boundary; |
} |
- |
bool Position::atStartOfTree() const |
{ |
if (isNull()) |