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()) |