Bug 1067375 - Fix animateTransform in svg-as-image to invalidate properly. r=jwatt
authorRobert Longson <longsonr@gmail.com>
Sun, 12 Oct 2014 08:49:34 +0100
changeset 210025 9532ec1b7e807b432c2a71d169ac54331ff9e06f
parent 210024 a014629454d07d64151319da1b8d99360433c0e8
child 210026 199fb29c3467cbf06cd4e7d6ef5ea2323530d211
child 210027 81af1b9eba5d5ae102fabe9092ebfed622bcadbd
push id1
push userroot
push dateMon, 20 Oct 2014 17:29:22 +0000
reviewersjwatt
bugs1067375
milestone35.0a1
Bug 1067375 - Fix animateTransform in svg-as-image to invalidate properly. r=jwatt
layout/base/RestyleManager.cpp
--- a/layout/base/RestyleManager.cpp
+++ b/layout/base/RestyleManager.cpp
@@ -261,16 +261,19 @@ DoApplyRenderingChangeToTree(nsIFrame* a
         // SVG effects paints the opacity without using
         // nsDisplayOpacity. We need to invalidate manually.
         aFrame->InvalidateFrameSubtree();
       }
     }
     if ((aChange & nsChangeHint_UpdateTransformLayer) &&
         aFrame->IsTransformed()) {
       ActiveLayerTracker::NotifyRestyle(aFrame, eCSSProperty_transform);
+      if (!aFrame->GetPrevContinuation()) {
+        nsSVGEffects::InvalidateRenderingObservers(aFrame);
+      }
       // If we're not already going to do an invalidating paint, see
       // if we can get away with only updating the transform on a
       // layer for this frame, and not scheduling an invalidating
       // paint.
       if (!needInvalidatingPaint) {
         Layer* layer;
         needInvalidatingPaint |= !aFrame->TryUpdateTransformOnly(&layer);