mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 23:35:34 +00:00
Bug 1318266 - Part 4. Update mask transform. r=mstange
Test scenario: 1. Hide menu bar 2. Press alt key to make menu bar appear. 3. Without this patch, the poistion of clip-path mask on the tab is not correct. That is because we do not update mask transform of cached mask. MozReview-Commit-ID: HPFYPYv7ubB --HG-- extra : rebase_source : ec5aa4a05578a53a9961b86c8804ba53f810c4c4
This commit is contained in:
parent
33bfa082b6
commit
60798112c4
@ -3885,6 +3885,15 @@ ContainerState::SetupMaskLayerForCSSMask(Layer* aLayer,
|
||||
bool snap;
|
||||
nsRect bounds = aMaskItem->GetBounds(mBuilder, &snap);
|
||||
nsIntRect itemRect = ScaleToOutsidePixels(bounds, snap);
|
||||
|
||||
// Setup mask layer offset.
|
||||
// We do not repaint mask for mask position change, so update base transform
|
||||
// each time is required.
|
||||
Matrix4x4 matrix;
|
||||
matrix.PreTranslate(itemRect.x, itemRect.y, 0);
|
||||
matrix.PreTranslate(mParameters.mOffset.x, mParameters.mOffset.y, 0);
|
||||
maskLayer->SetBaseTransform(matrix);
|
||||
|
||||
CSSMaskLayerUserData newUserData(aMaskItem->Frame(), itemRect.Size());
|
||||
nsRect dirtyRect;
|
||||
if (!aMaskItem->IsInvalid(dirtyRect) && *oldUserData == newUserData) {
|
||||
@ -3916,13 +3925,6 @@ ContainerState::SetupMaskLayerForCSSMask(Layer* aLayer,
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup mask layer offset.
|
||||
Matrix4x4 matrix;
|
||||
matrix.PreTranslate(itemRect.x, itemRect.y, 0);
|
||||
matrix.PreTranslate(mParameters.mOffset.x, mParameters.mOffset.y, 0);
|
||||
|
||||
maskLayer->SetBaseTransform(matrix);
|
||||
|
||||
RefPtr<ImageContainer> imgContainer =
|
||||
imageData.CreateImageAndImageContainer();
|
||||
if (!imgContainer) {
|
||||
|
Loading…
Reference in New Issue
Block a user