| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 46d7667427c235faa2e915fc37a35711f5a587cb..281c851dda67bbac5ba304a05fe89bbceaddd0af 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -1873,15 +1873,16 @@ StyleDifference RenderObject::adjustStyleDifference(StyleDifference diff, unsign
|
| diff = StyleDifferenceRecompositeLayer;
|
| }
|
|
|
| - // 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 <= StyleDifferenceRepaintLayer) {
|
| + if ((contextSensitiveProperties & (ContextSensitivePropertyOpacity | ContextSensitivePropertyZIndex)) && diff <= StyleDifferenceRepaintLayer) {
|
| if (!isText() && (!hasLayer() || !toRenderLayerModelObject(this)->layer()->hasDirectReasonsForCompositing()))
|
| diff = StyleDifferenceRepaintLayer;
|
| else if (diff < StyleDifferenceRecompositeLayer)
|
| diff = StyleDifferenceRecompositeLayer;
|
| }
|
|
|
| + // 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 <= StyleDifferenceRepaintLayer) {
|
| RenderLayer* layer = toRenderLayerModelObject(this)->layer();
|
| if (!layer->hasDirectReasonsForCompositing() || layer->paintsWithFilters())
|
|
|