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()) { |
+ node->setActive(false); |
+ m_userActionElements.setInActiveChain(node, false); |
+ } |
+ } |
setActiveHoverElement(nullptr); |
} else { |
Element* newActiveElement = innerElementInDocument; |