Bug 931668 - Part 1: Add a change hint that represents a style data change that requires no processing. r=dbaron

--HG--
extra : rebase_source : 9035e376bfc53a18d6499407ad5958706aefcb7a
This commit is contained in:
Cameron McCormack 2014-09-05 13:48:43 +10:00
parent d9eb0443cf
commit 9800c74ff6
2 changed files with 18 additions and 2 deletions

View File

@ -133,7 +133,23 @@ enum nsChangeHint {
* This will schedule an invalidating paint. This is useful if something
* has changed which will be invalidated by DLBI.
*/
nsChangeHint_SchedulePaint = 0x80000
nsChangeHint_SchedulePaint = 0x80000,
/**
* A hint reflecting that style data changed with no change handling
* behavior. We need to return this, rather than NS_STYLE_HINT_NONE,
* so that certain optimizations that manipulate the style context tree are
* correct.
*
* nsChangeHint_NeutralChange must be returned by CalcDifference on a given
* style struct if the data in the style structs are meaningfully different
* and if no other change hints are returned. If any other change hints are
* set, then nsChangeHint_NeutralChange need not also be included, but it is
* safe to do so. (An example of style structs having non-meaningfully
* different data would be cached information that would be re-calculated
* to the same values, such as nsStyleBorder::mSubImages.)
*/
nsChangeHint_NeutralChange = 0x100000
// IMPORTANT NOTE: When adding new hints, consider whether you need to
// add them to NS_HintsNotHandledForDescendantsIn() below.

View File

@ -637,7 +637,7 @@ nsStyleContext::CalcStyleDifference(nsStyleContext* aOther,
}
}
return hint;
return NS_SubtractHint(hint, nsChangeHint_NeutralChange);
}
void