Backed out changeset 0df37c7600d1 (bug 1412179) for build bustages on /builds/worker/workspace/build/src/layout/forms/nsFieldSetFrame.cpp:180:25 r=backout on a CLOSED TREE

This commit is contained in:
Cosmin Sabou 2017-11-23 18:32:44 +02:00
parent 1e7a98dfd2
commit 7198971550

View File

@ -163,40 +163,27 @@ nsDisplayFieldSetBorder::CreateWebRenderCommands(mozilla::wr::DisplayListBuilder
auto frame = static_cast<nsFieldSetFrame*>(mFrame);
auto offset = ToReferenceFrame();
nsRect rect;
bool pushedClip = false;
if (nsIFrame* legend = frame->GetLegend()) {
rect = frame->VisualBorderRectRelativeToSelf() + offset;
// Legends require a "negative" clip around the text, which WR doesn't support yet.
nsRect legendRect = legend->GetNormalRect() + offset;
if (!legendRect.IsEmpty()) {
auto appUnitsPerDevPixel = frame->PresContext()->AppUnitsPerDevPixel();
auto layoutRect = LayoutDeviceRect::FromAppUnits(legendRect, appUnitsPerDevPixel);
wr::ComplexClipRegion region;
region.rect = aSc.ToRelativeLayoutRect(layoutRect);
region.mode = wr::ClipMode::ClipOut;
nsTArray<mozilla::wr::ComplexClipRegion> array{region};
wr::ClipId clip = aBuilder.DefineClip(Nothing(), Nothing(), region.rect, &array);
aBuilder.PushClip(clip);
pushedClip = true;
return false;
}
} else {
rect = nsRect(offset, frame->GetRect().Size());
}
bool result = nsCSSRendering::CreateWebRenderCommandsForBorder(this,
mFrame,
rect,
aBuilder,
aResources,
aSc,
aManager,
aDisplayListBuilder);
if (pushedClip) {
aBuilder.PopClip();
}
return result;
return nsCSSRendering::CreateWebRenderCommandsForBorder(this,
mFrame,
rect,
aBuilder,
aResources,
aSc,
aManager,
aDisplayListBuilder);
};
void