fdo#54629 MultiSalLayout::GetBoundRect always uses level 0 fallback font
...in X11SalGraphics::GetGlyphBoundRect In MultiSalLayout::GetBoundRect we loop through each fallback font and union each level's GetBoundRect to get the result, which seems reasonable, except that for each level that means a call to SalLayout::GetBoundRect which calls X11SalGraphics::GetGlyphBoundRect. Those sublevel SalLayouts don't know that they are sublevels so they never set the level bits on their glyphs. Which results in X11SalGraphics::GetGlyphBoundRect always searching for that glyph in the level 0 font, so there's a mismatch between the font the SalLayout's are created to use and the font that gets used. Now, SalLayout::GetBoundRect is a fairly simple thing, it just calls GetNextGlyphs 1 by 1 and X11SalGraphics::GetGlyphBoundRect on the result of that. So I *think* that if we remove the specialized MultiSalLayout::GetBoundRect in favour of the default implementation, then because MultiSalLayout::GetNextGlyphs is specialized to do-the-right-thing and set up the glyph ids correctly, then we bubble the ids down to X11SalGraphics::GetGlyphBoundRect correctly to get it to use the right font and we get the correct bounding size. defb4d60a2d22fd36a0ff3f077faa6a0932b45a4 defb4d60a2d22fd36a0ff3f077faa6a0932b45a4 Change-Id: Idefb4d60a2d22fd36a0ff3f077faa6a0932b45a4 Reviewed-on: https://gerrit.libreoffice.org/1907Tested-by:Lior Kaplan <kaplanlior@gmail.com> Reviewed-by:
Miklos Vajna <vmiklos@suse.cz>
Showing
Please
register
or
sign in
to comment