mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 976533 - In case there is are both a MixBlendMode and BlendContainer wrapping the same stacking display list, reverse the order so that the BlendContainer comes first. This way, it will not isolate the legitimate MixBlendMode item. r=roc
This commit is contained in:
parent
a5e7362bd5
commit
0e770e33c0
@ -2029,6 +2029,19 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
|
||||
}
|
||||
}
|
||||
|
||||
/* If adding both a nsDisplayBlendContainer and a nsDisplayMixBlendMode to the
|
||||
* same list, the nsDisplayBlendContainer should be added first. This only
|
||||
* happens when the element creating this stacking context has mix-blend-mode
|
||||
* and also contains a child which has mix-blend-mode.
|
||||
* The nsDisplayBlendContainer must be added to the list first, so it does not
|
||||
* isolate the containing element blending as well.
|
||||
*/
|
||||
|
||||
if (aBuilder->ContainsBlendMode()) {
|
||||
resultList.AppendNewToTop(
|
||||
new (aBuilder) nsDisplayBlendContainer(aBuilder, this, &resultList));
|
||||
}
|
||||
|
||||
/* If there's blending, wrap up the list in a blend-mode item. Note
|
||||
* that opacity can be applied before blending as the blend color is
|
||||
* not affected by foreground opacity (only background alpha).
|
||||
@ -2039,11 +2052,6 @@ nsIFrame::BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder,
|
||||
new (aBuilder) nsDisplayMixBlendMode(aBuilder, this, &resultList));
|
||||
}
|
||||
|
||||
if (aBuilder->ContainsBlendMode()) {
|
||||
resultList.AppendNewToTop(
|
||||
new (aBuilder) nsDisplayBlendContainer(aBuilder, this, &resultList));
|
||||
}
|
||||
|
||||
CreateOwnLayerIfNeeded(aBuilder, &resultList);
|
||||
|
||||
aList->AppendToTop(&resultList);
|
||||
|
Loading…
Reference in New Issue
Block a user