(From phabricator) There's a weird thing going on with the character offsets, the following SVG loads properly in Firefox and Inkscape, but not in Krita: ------------------------------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <svg viewbox="0 0 1800 1200" xmlns="http://www.w3.org/2000/svg"> <text x="200" y="50" style="font-family:Noto mono; font-size:12pt; text-anchor:start"> <tspan dy="0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0">Lorem ipsum dolor sit amet</tspan> </text> <text x="200" y="100" style="font-family:Noto mono; font-size:12pt; text-anchor:start"> <tspan dx="0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0 -3 -3 -3 -3 3 3 3 3 0">consectetur adipiscing elit.</tspan> </text> <text x="200" y="150" style="font-family:Noto mono; font-size:12pt; text-anchor:start"> <tspan y="150 155 160 155 150 155 160 155 150 155 160 155 150 155 160 155 150 155 160 155 150 155 160 155 150 155 160 155">Lorem ipsum dolor sit amet</tspan> </text> <text x="150" y="200" style="font-family:Noto mono; font-size:12pt; text-anchor:start"> <tspan x="150 170 190 210 230 250 270 290 310 330 350 370 390 410 430 450 470 490 510 530 550 570 590 610 630 650 670 690">Lorem ipsum dolor sit amet</tspan> </text> </svg> ----------------------------------------------------------------------------- And the code for handling the offsets like this is there, it's just not interpreted properly.
Oups, after my recent fix for text bounding rect, this test file just crashes Krita :(
Git commit 7317b69c9464fe3600cf672ebea1cb18ac97bfe1 by Dmitry Kazakov. Committed on 17/03/2018 at 07:14. Pushed by dkazakov into branch 'master'. Fix crash when a format range wraps a fully whitespace run of symbols M +5 -0 libs/flake/text/KoSvgTextShape.cpp https://commits.kde.org/krita/7317b69c9464fe3600cf672ebea1cb18ac97bfe1
After the crash is fixed it is just a bug, not a release blocker anymore
Git commit 72c4f497f733ee85a620874f00234c54988d5aa0 by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 17/03/2018 at 08:53. Pushed by rempt into branch 'krita/4.0'. Fix crash when a format range wraps a fully whitespace run of symbols (cherry picked from commit 7317b69c9464fe3600cf672ebea1cb18ac97bfe1) M +5 -0 libs/flake/text/KoSvgTextShape.cpp https://commits.kde.org/krita/72c4f497f733ee85a620874f00234c54988d5aa0
Git commit c764a68e1df604e7ccd453bac4ccf23182038479 by Dmitry Kazakov. Committed on 19/03/2018 at 12:15. Pushed by dkazakov into branch 'master'. Fix rendering of the text with relative offsets 1) Relative offsets were calculated incorrectly: null offsets should not repeat itself, but define a new noop offset, which will be handled on a lower level 2) Workaround QTextLayout "weirdness" that makes it skip the space characters and not include them into "horizontal advance" of the text chunk M +80 -0 libs/flake/tests/TestSvgText.cpp M +3 -0 libs/flake/tests/TestSvgText.h A +- -- libs/flake/tests/data/svg_render/load_text_multiple_absolute_offsets_arabic.png A +- -- libs/flake/tests/data/svg_render/load_text_multiple_relative_offsets.png M +3 -1 libs/flake/text/KoSvgTextChunkShape.cpp M +104 -31 libs/flake/text/KoSvgTextShape.cpp https://commits.kde.org/krita/c764a68e1df604e7ccd453bac4ccf23182038479
Git commit 3fb3824e436df7a997c02f3ab59472be9e114de2 by Boudewijn Rempt, on behalf of Dmitry Kazakov. Committed on 19/03/2018 at 14:32. Pushed by rempt into branch 'krita/4.0'. Fix rendering of the text with relative offsets 1) Relative offsets were calculated incorrectly: null offsets should not repeat itself, but define a new noop offset, which will be handled on a lower level 2) Workaround QTextLayout "weirdness" that makes it skip the space characters and not include them into "horizontal advance" of the text chunk M +80 -0 libs/flake/tests/TestSvgText.cpp M +3 -0 libs/flake/tests/TestSvgText.h A +- -- libs/flake/tests/data/svg_render/load_text_multiple_absolute_offsets_arabic.png A +- -- libs/flake/tests/data/svg_render/load_text_multiple_relative_offsets.png M +3 -1 libs/flake/text/KoSvgTextChunkShape.cpp M +104 -31 libs/flake/text/KoSvgTextShape.cpp https://commits.kde.org/krita/3fb3824e436df7a997c02f3ab59472be9e114de2