summaryrefslogtreecommitdiff
path: root/layout
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-08-14 13:38:25 +0200
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-08-14 13:38:25 +0200
commit4bb5a957fb7a792e957cc1a9a191ad74688b2c7f (patch)
tree78fe6db50527eda2e77380370729acce7459ba02 /layout
parent0d530b1ca2b21cb72520e3d04134bf350c08f04a (diff)
downloaduxp-4bb5a957fb7a792e957cc1a9a191ad74688b2c7f.tar.gz
Issue #438: Pixel-snap subpixel value for outer SVG and anon child.
This doesn't solve the blurriness yet, but is part of the problem.
Diffstat (limited to 'layout')
-rw-r--r--layout/base/nsDisplayList.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/layout/base/nsDisplayList.cpp b/layout/base/nsDisplayList.cpp
index cd0c623df9..44fc95debe 100644
--- a/layout/base/nsDisplayList.cpp
+++ b/layout/base/nsDisplayList.cpp
@@ -5918,11 +5918,16 @@ nsDisplayTransform::GetResultingTransformMatrixInternal(const FrameTransformProp
bool hasTransformFromSVGParent =
hasSVGTransforms && !transformFromSVGParent.IsIdentity();
+ bool shouldRound = true;
+
// An SVG frame should not have its translation rounded.
// Note it's possible that the SVG frame doesn't have an SVG
// transform but only has a CSS transform.
- bool shouldRound = !(frame && frame->IsFrameOfType(nsIFrame::eSVG));
-
+ if (frame && frame->HasAnyStateBits(NS_FRAME_SVG_LAYOUT) &&
+ !(frame->GetType() == nsGkAtoms::svgOuterSVGAnonChildFrame)) {
+ shouldRound = false;
+ }
+
/* Transformed frames always have a transform, or are preserving 3d (and might still have perspective!) */
if (aProperties.mTransformList) {
result = nsStyleTransformMatrix::ReadTransforms(aProperties.mTransformList->mHead,