Index: Source/core/dom/Document.cpp |
diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
index b69cf2e04871d5bcbfef8fe95af8bd0c5ba78658..dd773c4461a2bde75cfd3ea1f12b3700dd91410f 100644 |
--- a/Source/core/dom/Document.cpp |
+++ b/Source/core/dom/Document.cpp |
@@ -5478,14 +5478,14 @@ void Document::updateHoverActiveState(const HitTestRequest& request, Element* in |
// The old hover path only needs to be cleared up to (and not including) the common ancestor; |
for (RenderObject* curr = oldHoverObj; curr && curr != ancestor; curr = curr->hoverAncestor()) { |
- if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain())) |
+ if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain() || curr == oldHoverObj)) |
Rick Byers
2014/06/12 18:24:06
This doesn't look like the right fix to me. How d
|
nodesToRemoveFromChain.append(curr->node()); |
} |
} |
// Now set the hover state for our new object up to the root. |
for (RenderObject* curr = newHoverObj; curr; curr = curr->hoverAncestor()) { |
- if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain())) |
+ if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain() || curr == newHoverObj)) |
nodesToAddToChain.append(curr->node()); |
} |