| 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);
|
| }
|
|
|