Chromium Code Reviews| 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()); |
| } |