| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index e50566e9004ec595792874483692fa13c1e9deb4..92e9338c7ef31272cd4e1c24f03e870a52fe7faa 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -1903,15 +1903,16 @@ StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff, unsign
|
| }
|
| }
|
|
|
| - // If opacity or filters changed, and the layer does not paint into its own separate backing, then we need to repaint (also
|
| + // If opacity or zIndex changed, and the layer does not paint into its own separate backing, then we need to repaint (also
|
| // ignoring text nodes)
|
| - if (contextSensitiveProperties & ContextSensitivePropertyOpacity && !diff.needsLayout()) {
|
| + if ((contextSensitiveProperties & (ContextSensitivePropertyOpacity | ContextSensitivePropertyZIndex)) && !diff.needsLayout()) {
|
| if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer()->hasDirectReasonsForCompositing()))
|
| diff.setNeedsRepaintLayer();
|
| else
|
| diff.setNeedsRecompositeLayer();
|
| }
|
|
|
| + // If filter changed, and the layer does not paint into its own separate backing or it paints with filters, then we need to repaint.
|
| if ((contextSensitiveProperties & ContextSensitivePropertyFilter) && hasLayer() && !diff.needsLayout()) {
|
| RenderLayer* layer = toRenderLayerModelObject(this)->layer();
|
| if (!layer->hasDirectReasonsForCompositing() || layer->paintsWithFilters())
|
|
|