vcl/source/gdi/sallayout.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
New commits: commit 8a65d3e9ceb268f785c5b2b77e126bd62af567a3 Author: Mark Hung <mark...@gmail.com> AuthorDate: Thu May 13 23:57:31 2021 +0800 Commit: Mark Hung <mark...@gmail.com> CommitDate: Fri May 28 07:03:53 2021 +0200 vcl: handle fallback glyph offset for vertical writing. When GenericSalLayout::MoveGlyph() is called from MultiSalLayout::AdjustLayout(), new position is calculatd by adding glyph advances ( i.e. glyph items' m_nNewWidth ). To move the glyph, the moving offset should be calculated based on the corresponding position, i.e. m_nXOffset v.s. m_LinearPos.X(). Change-Id: I912d499f49f69f68d8388bc8677e6b47bfb6f066 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115926 Tested-by: Jenkins Reviewed-by: Mark Hung <mark...@gmail.com> diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index cde5cac31730..9f4757148b36 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -949,7 +949,7 @@ void GenericSalLayout::MoveGlyph( int nStart, tools::Long nNewXPos ) if( pGlyphIter->IsRTLGlyph() ) nNewXPos += pGlyphIter->m_nNewWidth - pGlyphIter->origWidth(); // calculate the x-offset to the old position - tools::Long nXDelta = nNewXPos - pGlyphIter->m_aLinearPos.getX(); + tools::Long nXDelta = nNewXPos - pGlyphIter->m_aLinearPos.getX() + pGlyphIter->xOffset(); // adjust all following glyph positions if needed if( nXDelta != 0 ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits