Created attachment 152029 [details] TearDrop shape with screenshot, how it looks in Word The custom shapes are defined by the draw:enhanced-path attribute of the <draw:enhanced-geometry> element in ODF. This path uses commands like lineto and arcto. Some of the commands refer to "current point" as start of its segment. In the current implementation such "current point" is not tracked. That works as long as the coordinates of the "current point" are not needed for the command itself. But the quadratic Bézier curve is implemented, so that the equivalent cubic Bézier curve is used. And for getting the first control point the coordinates of the start point are needed. The current implementation assumes, that the "current point" is the previous point in the point sequence. But that is wrong in case the previous command is one of the several 'arc' commands. For those commands the last coordinate pair represents an angle. The error becomes visible in the "teardrop" shape. Is has a path with 'arcangleto' followed by 'quadraticcurveto'. See attachment. I suggest to solve the problem by tracking the "current point" in EnhancedCustomShape2d::CreateSubPath(). That has the advantage, that not only command 'quadraticcurveto' can be implemented properly, but the command 'closepath' too.
Let start with the obvious error in QuadraticCurveTo. (It is my fault. I had implemented it.) How to handle 'current point' in general, is a different problem and should go to a new report.
Regina Henschel committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/+/39599fc689364b70cf83e834a5742cc2181b13b0%5E%21 tdf#125782 use correct 'current point' for quadraticcurveto It will be available in 6.4.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Fix is in Version: 6.4.0.0.alpha0+ (x64) Build ID: 7aaa7212f2f37606b34d44a039398f05c02d5660 CPU threads: 8; OS: Windows 10.0; UI render: default; VCL: win; TinderBox: Win-x86_64@42, Branch:master, Time: 2019-06-11_23:48:14 Locale: de-DE (en_US); UI-Language: en-US Calc: threaded
Regina Henschel committed a patch related to this issue. It has been pushed to "libreoffice-6-3": https://git.libreoffice.org/core/+/54c7f48ded248f6da6a22fffca053d82674aa7b5%5E%21 tdf#125782 use correct 'current point' for quadraticcurveto It will be available in 6.3.0.1. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.