зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1426594 - Should convert rect from TransformFramePointToTextChild to device pixel r=longsonr
We need device pixel, but TransformFramePointToTextChild returns in css pixel, thus a scaling is necessary. Differential Revision: https://phabricator.services.mozilla.com/D27322 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
33058a6bbd
Коммит
2f70fdcb52
|
@ -38,6 +38,7 @@ support-files =
|
|||
[test_bbox-changes.xhtml]
|
||||
[test_bounds.html]
|
||||
[test_bug872812.html]
|
||||
[test_bug1426594.html]
|
||||
[test_getBBox-method.html]
|
||||
[test_dataTypes.html]
|
||||
[test_dataTypesModEvents.html]
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1426594
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 1426594</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
<script class="testbody" type="application/javascript">
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
function runTests() {
|
||||
let textElement = document.getElementById("textId"),
|
||||
tspanElement = document.getElementById("tspanId");
|
||||
|
||||
isfuzzy(textElement.getBoundingClientRect().width, tspanElement.getBoundingClientRect().width, 5);
|
||||
isfuzzy(textElement.getBoundingClientRect().height, tspanElement.getBoundingClientRect().height, 5);
|
||||
|
||||
SimpleTest.finish();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="runTests()">
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=589640">Mozilla Bug 1426594</a>
|
||||
<svg height="1.5em" width="200px">
|
||||
<text id="textId" y="1em"><tspan id="tspanId">ABCDEF</tspan></text>
|
||||
</svg>
|
||||
<div style="pointer-events: none; border: 1px solid red; position: absolute;
|
||||
z-index: 1"
|
||||
id="highlight">
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -3001,6 +3001,13 @@ nsRect nsLayoutUtils::TransformFrameRectToAncestor(
|
|||
|
||||
if (text) {
|
||||
result = ToRect(text->TransformFrameRectFromTextChild(aRect, aFrame));
|
||||
|
||||
// |result| from TransformFrameRectFromTextChild() is in user space (css
|
||||
// pixel), should convert to device pixel
|
||||
float devPixelPerCSSPixel =
|
||||
1.f * AppUnitsPerCSSPixel() / srcAppUnitsPerDevPixel;
|
||||
result.Scale(devPixelPerCSSPixel);
|
||||
|
||||
result = TransformGfxRectToAncestor(
|
||||
text, result, aAncestor, nullptr, aMatrixCache,
|
||||
aStopAtStackingContextAndDisplayPortAndOOFFrame, aOutAncestor);
|
||||
|
|
Загрузка…
Ссылка в новой задаче