Bug 1224251 patch 2 - Add nsChangeHint_UpdateUsesOpacity to say when opacity changes between 1 and non-1. r=xidorn

--HG--
extra : commitid : 54U9yWksA8Q
This commit is contained in:
L. David Baron 2015-11-30 21:25:54 -08:00
Родитель a3f4d86240
Коммит ea2560fb45
2 изменённых файлов: 16 добавлений и 3 удалений

Просмотреть файл

@ -5095,7 +5095,8 @@ RestyleManager::ChangeHintToString(nsChangeHint aHint)
"ChildrenOnlyTransform", "RecomputePosition", "AddOrRemoveTransform",
"BorderStyleNoneChange", "UpdateTextPath", "SchedulePaint",
"NeutralChange", "InvalidateRenderingObservers",
"ReflowChangesSizeOrPosition", "UpdateComputedBSize"
"ReflowChangesSizeOrPosition", "UpdateComputedBSize",
"UpdateUsesOpacity"
};
uint32_t hint = aHint & ((1 << ArrayLength(names)) - 1);
uint32_t rest = aHint & ~((1 << ArrayLength(names)) - 1);

Просмотреть файл

@ -184,6 +184,16 @@ enum nsChangeHint {
*/
nsChangeHint_UpdateComputedBSize = 0x1000000,
/**
* Indicates that the 'opacity' property changed between 1 and non-1.
*
* Used as extra data for handling UpdateOpacityLayer hints.
*
* Note that we do not send this hint if the non-1 value was 0.99 or
* greater, since in that case we send a RepaintFrame hint instead.
*/
nsChangeHint_UpdateUsesOpacity = 0x2000000,
// IMPORTANT NOTE: When adding new hints, consider whether you need to
// add them to NS_HintsNotHandledForDescendantsIn() below. Please also
// add them to RestyleManager::ChangeHintToString.
@ -292,7 +302,8 @@ inline nsChangeHint operator^=(nsChangeHint& aLeft, nsChangeHint aRight)
nsChangeHint_NeedReflow | \
nsChangeHint_ReflowChangesSizeOrPosition | \
nsChangeHint_ClearAncestorIntrinsics | \
nsChangeHint_UpdateComputedBSize)
nsChangeHint_UpdateComputedBSize | \
nsChangeHint_UpdateUsesOpacity)
inline nsChangeHint NS_HintsNotHandledForDescendantsIn(nsChangeHint aChangeHint) {
nsChangeHint result = nsChangeHint(aChangeHint & (
@ -307,7 +318,8 @@ inline nsChangeHint NS_HintsNotHandledForDescendantsIn(nsChangeHint aChangeHint)
nsChangeHint_RecomputePosition |
nsChangeHint_UpdateContainingBlock |
nsChangeHint_BorderStyleNoneChange |
nsChangeHint_UpdateComputedBSize));
nsChangeHint_UpdateComputedBSize |
nsChangeHint_UpdateUsesOpacity));
if (!NS_IsHintSubset(nsChangeHint_NeedDirtyReflow, aChangeHint)) {
if (NS_IsHintSubset(nsChangeHint_NeedReflow, aChangeHint)) {