Index: Source/core/rendering/RenderObject.cpp |
diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp |
index b1e614773b73b23c84791e1a384d0327ac6985fe..edfc2da65ea370f87d19a257b608da8453f5d259 100644 |
--- a/Source/core/rendering/RenderObject.cpp |
+++ b/Source/core/rendering/RenderObject.cpp |
@@ -2769,8 +2769,12 @@ void RenderObject::updateDragState(bool dragOn) |
{ |
bool valueChanged = (dragOn != isDragging()); |
setIsDragging(dragOn); |
- if (valueChanged && node() && (style()->affectedByDrag() || (node()->isElementNode() && toElement(node())->childrenAffectedByDrag()))) |
- node()->setNeedsStyleRecalc(SubtreeStyleChange); |
+ if (valueChanged && node()) { |
+ if (node()->isElementNode() && toElement(node())->childrenAffectedByDrag()) |
+ node()->setNeedsStyleRecalc(SubtreeStyleChange); |
+ else if (style()->affectedByDrag()) |
+ node()->setNeedsStyleRecalc(LocalStyleChange); |
+ } |
for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) |
curr->updateDragState(dragOn); |
} |