Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


On Wed, Nov 02, 2016 at 06:34:32PM +0200, Khaled Hosny wrote:
On Tue, Nov 01, 2016 at 10:14:49PM +0100, Tomaž Vajngerl wrote:
Hi,

On Tue, Nov 1, 2016 at 8:33 PM, Khaled Hosny <khaledhosny@eglug.org> wrote:
I tried to find what is the source of difference, but to no avail. I
can’t figure out why the choice of the layout engine can make a
difference here.

I don't know the cause and if this is possible but just a quick check
at the svgio code my speculation is that it could make a difference if
it determines for example that text overflows the bounds and it needs
to clip. If you look at the XML and what the test checks you see the
mask primitive is inserted just suddenly. I saw in the svgio code that
the mask primitive is used at many places to do clipping.

Thanks for the pointers, that was very helpful. I now found the part
that does the mask; if I set bDoCorrectCanvasClipping to false in
svgio/source/svgreader/svgsvgnode.cxx the test passes. Now I need to
find the part that actually calculates the bounding box...

After further debugging it turned out we were returning bad text
bounding boxes on macOS with the new layout engine, apparently
CoreTextStyle::GetGlyphBoundRect() was returning wrong bounding box all
along but it was not detected before because we were using Core Text to
get the bounding box of the whole text at once and this function was not
used (not for this at least).

This is now fixed in:
https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=8cef9b4dbafdebc0566d6d7f715f27f978ddfe5b

Regards,
Khaled

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.