https://bugs.freedesktop.org/show_bug.cgi?id=72488

--- Comment #4 from Khaled Hosny <[email protected]> ---
The problem is that Writer code assume that the text string with and without
the visible space (the dot) are otherwise identical and tries to draw the text
string with spaces replaced with the dot, but using the glyph positions of the
original string (and the idea here, I think, is that even if there is small
difference in the width of the space and the dot, the text does not reflow with
non-printing characters shown).

This generally works, but it breaks badly with this font because here:

بسم الله الرحمن الرحيم

is a single glyph (a ligature of the whole sentence), while:

بسم·الله·الرحمن·الرحيم

is 25 glyphs, and they all are drawn overprinting each other since they are
treated as if they were a single glyph.

The relevant code is in sw/source/core/txtnode/fntcache.cxx, around line 1457 
pKernArray is obtained (note the rInf.GetText(), this is the original text
string), then at line 1572 spaces are replaced with bullets, then at line 1798
the text is drawn using the modified text string and the *original* kern array.

I’m not sure how to fix this, but I guess we will need to check the original
text string *eats* the spaces when rendered and avoid drawing anything for
those spaces.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to