diff --git a/layout/style/nsStyleStruct.cpp b/layout/style/nsStyleStruct.cpp index 7ce7b90bf5c2..d501ea3d250d 100644 --- a/layout/style/nsStyleStruct.cpp +++ b/layout/style/nsStyleStruct.cpp @@ -3709,8 +3709,6 @@ nsStyleDisplay::CalcDifference(const nsStyleDisplay& aNewData) const || mContain != aNewData.mContain || (mFloat == StyleFloat::None) != (aNewData.mFloat == StyleFloat::None) || mScrollBehavior != aNewData.mScrollBehavior - || mOverscrollBehaviorX != aNewData.mOverscrollBehaviorX - || mOverscrollBehaviorY != aNewData.mOverscrollBehaviorY || mScrollSnapTypeX != aNewData.mScrollSnapTypeX || mScrollSnapTypeY != aNewData.mScrollSnapTypeY || mScrollSnapPointsX != aNewData.mScrollSnapPointsX @@ -3901,6 +3899,13 @@ nsStyleDisplay::CalcDifference(const nsStyleDisplay& aNewData) const hint |= nsChangeHint_RepaintFrame; } + // If overscroll-behavior has changed, the changes are picked up + // during a repaint. + if (mOverscrollBehaviorX != aNewData.mOverscrollBehaviorX || + mOverscrollBehaviorY != aNewData.mOverscrollBehaviorY) { + hint |= nsChangeHint_SchedulePaint; + } + // Note: Our current behavior for handling changes to the // transition-duration, transition-delay, and transition-timing-function // properties is to do nothing. In other words, the transition