diff --git a/mozilla/content/shared/src/nsStyleStruct.cpp b/mozilla/content/shared/src/nsStyleStruct.cpp index 8e931facda5..514c2e2e145 100644 --- a/mozilla/content/shared/src/nsStyleStruct.cpp +++ b/mozilla/content/shared/src/nsStyleStruct.cpp @@ -1311,8 +1311,14 @@ nsChangeHint nsStyleTextReset::CalcDifference(const nsStyleTextReset& aOther) co { if (mVerticalAlign == aOther.mVerticalAlign && mUnicodeBidi == aOther.mUnicodeBidi) { - if (mTextDecoration != aOther.mTextDecoration) - return NS_STYLE_HINT_VISUAL; + if (mTextDecoration != aOther.mTextDecoration) { + // Reflow for blink changes, repaint for others + return + (mTextDecoration & NS_STYLE_TEXT_DECORATION_BLINK) == + (aOther.mTextDecoration & NS_STYLE_TEXT_DECORATION_BLINK) ? + NS_STYLE_HINT_VISUAL : NS_STYLE_HINT_REFLOW; + } + return NS_STYLE_HINT_NONE; } return NS_STYLE_HINT_REFLOW; diff --git a/mozilla/layout/style/nsStyleStruct.cpp b/mozilla/layout/style/nsStyleStruct.cpp index 8e931facda5..514c2e2e145 100644 --- a/mozilla/layout/style/nsStyleStruct.cpp +++ b/mozilla/layout/style/nsStyleStruct.cpp @@ -1311,8 +1311,14 @@ nsChangeHint nsStyleTextReset::CalcDifference(const nsStyleTextReset& aOther) co { if (mVerticalAlign == aOther.mVerticalAlign && mUnicodeBidi == aOther.mUnicodeBidi) { - if (mTextDecoration != aOther.mTextDecoration) - return NS_STYLE_HINT_VISUAL; + if (mTextDecoration != aOther.mTextDecoration) { + // Reflow for blink changes, repaint for others + return + (mTextDecoration & NS_STYLE_TEXT_DECORATION_BLINK) == + (aOther.mTextDecoration & NS_STYLE_TEXT_DECORATION_BLINK) ? + NS_STYLE_HINT_VISUAL : NS_STYLE_HINT_REFLOW; + } + return NS_STYLE_HINT_NONE; } return NS_STYLE_HINT_REFLOW;