| Index: Source/core/rendering/RenderObject.cpp
|
| diff --git a/Source/core/rendering/RenderObject.cpp b/Source/core/rendering/RenderObject.cpp
|
| index 6df1219266d8b59f039ae3f1d17d2e3a20732261..f52c2a2213205ad4267a4468e6e61197597dae57 100644
|
| --- a/Source/core/rendering/RenderObject.cpp
|
| +++ b/Source/core/rendering/RenderObject.cpp
|
| @@ -1278,6 +1278,18 @@ static PassRefPtr<TraceEvent::ConvertableToTraceFormat> jsonObjectForOldAndNewRe
|
| return value;
|
| }
|
|
|
| +void RenderObject::invalidateSelectionIfNeeded(const RenderLayerModelObject& paintInvalidationContainer)
|
| +{
|
| + if (!shouldInvalidateSelection())
|
| + return;
|
| +
|
| + LayoutRect selection = selectionRectForPaintInvalidation(&paintInvalidationContainer);
|
| + // FIXME: groupedMapping() leaks the squashing abstraction. See RenderBlockSelectionInfo for more details.
|
| + if (paintInvalidationContainer.layer()->groupedMapping())
|
| + RenderLayer::mapRectToPaintBackingCoordinates(&paintInvalidationContainer, selection);
|
| + invalidatePaintUsingContainer(&paintInvalidationContainer, selection, InvalidationSelection);
|
| +}
|
| +
|
| InvalidationReason RenderObject::invalidatePaintIfNeeded(const PaintInvalidationState& paintInvalidationState, const RenderLayerModelObject& paintInvalidationContainer)
|
| {
|
| RenderView* v = view();
|
| @@ -1303,6 +1315,8 @@ InvalidationReason RenderObject::invalidatePaintIfNeeded(const PaintInvalidation
|
|
|
| InvalidationReason invalidationReason = getPaintInvalidationReason(paintInvalidationContainer, oldBounds, oldLocation, newBounds, newLocation);
|
|
|
| + invalidateSelectionIfNeeded(paintInvalidationContainer);
|
| +
|
| if (invalidationReason == InvalidationNone)
|
| return invalidationReason;
|
|
|
| @@ -3113,6 +3127,7 @@ void RenderObject::clearPaintInvalidationState(const PaintInvalidationState& pai
|
| setShouldInvalidateOverflowForPaint(false);
|
| setLayoutDidGetCalled(false);
|
| setMayNeedPaintInvalidation(false);
|
| + clearShouldInvalidateSelection();
|
| }
|
|
|
| bool RenderObject::isAllowedToModifyRenderTreeStructure(Document& document)
|
|
|