Chromium Code Reviews| Index: Source/core/dom/Document.cpp |
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp |
| index d3ff7e416ef064d37ab0cf9a617667826fd9bde1..ed0391764a5fd5cd65787f40c78e38cc331beebf 100644 |
| --- a/Source/core/dom/Document.cpp |
| +++ b/Source/core/dom/Document.cpp |
| @@ -5455,6 +5455,14 @@ void Document::updateHoverActiveState(const HitTestRequest& request, Element* in |
| m_userActionElements.setInActiveChain(curr->node(), false); |
| } |
| } |
| + // The oldActiveElement renderer is null, dropped on :active by setting display: none, |
| + // for instance. We still need to clear the ActiveChain as the mouse is released. |
| + if (!oldActiveElement->renderer()) { |
| + for (Node* node = oldActiveElement; node; node = node->parentNode()) { |
|
esprehn
2014/06/17 08:37:20
This is not correct for Shadow DOM. You need to us
spartha
2014/06/17 15:07:00
I tried this content http://jsbin.com/fasoyuqi on
spartha
2014/06/18 12:40:09
I have uploaded a patch using NodeRenderingTravers
|
| + node->setActive(false); |
| + m_userActionElements.setInActiveChain(node, false); |
| + } |
| + } |
| setActiveHoverElement(nullptr); |
| } else { |
| Element* newActiveElement = innerElementInDocument; |