Bug 1416620 - Part1. Fix webrender commands in nsDisplayButtonBorder. r=kats
MozReview-Commit-ID: 418FZgwFR2i
--- a/layout/forms/nsButtonFrameRenderer.cpp
+++ b/layout/forms/nsButtonFrameRenderer.cpp
@@ -288,16 +288,27 @@ nsDisplayButtonBorder::BuildLayer(nsDisp
bool
nsDisplayButtonBorder::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder& aBuilder,
mozilla::wr::IpcResourceUpdateQueue& aResources,
const StackingContextHelper& aSc,
mozilla::layers::WebRenderLayerManager* aManager,
nsDisplayListBuilder* aDisplayListBuilder)
{
+ // This is really a combination of paint box shadow inner +
+ // paint border.
+ nsRect buttonRect = nsRect(ToReferenceFrame(), mFrame->GetSize());
+ bool snap;
+ nsRegion visible = GetBounds(aDisplayListBuilder, &snap);
+ nsDisplayBoxShadowInner::CreateInsetBoxShadowWebRenderCommands(aBuilder,
+ aSc,
+ visible,
+ mFrame,
+ buttonRect);
+
bool borderIsEmpty = false;
Maybe<nsCSSBorderRenderer> br =
nsCSSRendering::CreateBorderRenderer(mFrame->PresContext(),
nullptr,
mFrame,
nsRect(),
nsRect(ToReferenceFrame(), mFrame->GetSize()),
mFrame->StyleContext(),
@@ -308,27 +319,16 @@ nsDisplayButtonBorder::CreateWebRenderCo
return true;
}
return false;
}
if (!br->CanCreateWebRenderCommands()) {
return false;
}
- // This is really a combination of paint box shadow inner +
- // paint border.
- nsRect buttonRect = nsRect(ToReferenceFrame(), mFrame->GetSize());
- bool snap;
- nsRegion visible = GetBounds(aDisplayListBuilder, &snap);
- nsDisplayBoxShadowInner::CreateInsetBoxShadowWebRenderCommands(aBuilder,
- aSc,
- visible,
- mFrame,
- buttonRect);
-
br->CreateWebRenderCommands(this, aBuilder, aResources, aSc);
return true;
}
void
nsDisplayButtonBorder::ComputeInvalidationRegion(nsDisplayListBuilder* aBuilder,
const nsDisplayItemGeometry* aGeometry,