Index: Source/core/dom/ContainerNode.cpp |
diff --git a/Source/core/dom/ContainerNode.cpp b/Source/core/dom/ContainerNode.cpp |
index c117d5f2651f171e17b02733d284f38e18fff523..85a1c4f7b20821a167bbb05df67390b2193b555b 100644 |
--- a/Source/core/dom/ContainerNode.cpp |
+++ b/Source/core/dom/ContainerNode.cpp |
@@ -809,7 +809,8 @@ void ContainerNode::focusStateChanged() |
if (!renderer()) |
return; |
- if (isElementNode() && toElement(this)->childrenAffectedByFocus()) |
+ if ((isElementNode() && toElement(this)->childrenAffectedByFocus()) |
+ || (renderStyle()->affectedByFocus() && renderStyle()->hasPseudoStyle(FIRST_LETTER))) |
setNeedsStyleRecalc(SubtreeStyleChange); |
else if (renderStyle()->affectedByFocus()) |
setNeedsStyleRecalc(LocalStyleChange); |
@@ -846,7 +847,8 @@ void ContainerNode::setActive(bool down) |
// FIXME: Why does this not need to handle the display: none transition like :hover does? |
if (renderer()) { |
- if (isElementNode() && toElement(this)->childrenAffectedByActive()) |
+ if ((isElementNode() && toElement(this)->childrenAffectedByActive()) |
+ || (renderStyle()->affectedByActive() && renderStyle()->hasPseudoStyle(FIRST_LETTER))) |
setNeedsStyleRecalc(SubtreeStyleChange); |
else if (renderStyle()->affectedByActive()) |
setNeedsStyleRecalc(LocalStyleChange); |
@@ -874,7 +876,8 @@ void ContainerNode::setHovered(bool over) |
return; |
} |
- if (isElementNode() && toElement(this)->childrenAffectedByHover()) |
+ if ((isElementNode() && toElement(this)->childrenAffectedByHover()) |
+ || (renderStyle()->affectedByHover() && renderStyle()->hasPseudoStyle(FIRST_LETTER))) |
setNeedsStyleRecalc(SubtreeStyleChange); |
else if (renderStyle()->affectedByHover()) |
setNeedsStyleRecalc(LocalStyleChange); |