Bug 1599841 - Invert the direction of details->mOffset.x when doing "mirrored" measurement of RTL glyph runs. r=heycam

Differential Revision: https://phabricator.services.mozilla.com/D55709

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jonathan Kew 2019-12-09 17:34:41 +00:00
Родитель 0fb31afbcd
Коммит ad9a50096d
2 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -2550,9 +2550,14 @@ gfxFont::RunMetrics gfxFont::Measure(const gfxTextRun* aTextRun,
metrics.mAscent + metrics.mDescent);
}
if (isRTL) {
// Swap left/right sidebearings of the glyph, because we're doing
// mirrored measurement.
glyphRect.MoveToX(advance - glyphRect.XMost());
// Move to current x position, mirroring any x-offset amount.
glyphRect.MoveByX(x - details->mOffset.x);
} else {
glyphRect.MoveByX(x + details->mOffset.x);
}
glyphRect.MoveByX(x + details->mOffset.x);
glyphRect.MoveByY(details->mOffset.y);
metrics.mBoundingBox = metrics.mBoundingBox.Union(glyphRect);
x += advance;

Просмотреть файл

@ -2084,7 +2084,7 @@ pref(image.downscale-during-decode.enabled,true) skip-if(Android&&webrender) ==
== 1558937-1.html 1558937-1-ref.html
!= 1563484.html 1563484-notref.html
== 1563484.html 1563484-ref.html
fuzzy-if(!webrender||!winWidget,251-255,464-1613) fuzzy-if(geckoview&&webrender,251-255,1392-1402) == 1562733-rotated-nastaliq-1.html 1562733-rotated-nastaliq-1-ref.html
fuzzy-if(!webrender||!winWidget,251-255,464-1613) fuzzy-if(geckoview&&webrender,251-255,1392-1405) == 1562733-rotated-nastaliq-1.html 1562733-rotated-nastaliq-1-ref.html
fuzzy-if(winWidget&&webrender,0-31,0-3) fuzzy-if(geckoview&&webrender,0-93,0-87) == 1562733-rotated-nastaliq-2.html 1562733-rotated-nastaliq-2-ref.html
test-pref(plain_text.wrap_long_lines,false) != 1565129.txt 1565129.txt
fuzzy(0-32,0-8) fuzzy-if(Android&&webrender,0-32,0-1458) == 1576553-1.html 1576553-1-ref.html