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


Hi all,

I'm looking at https://bugs.documentfoundation.org/show_bug.cgi?id=115813
"Position shifted while moving the handle of OOXML Callout shape".

Unfortunately not only the Callout shape is affected.
There are 106 shapes in MS Office, which have handles. 38 are OK with the current implementation and 68 have at least one handle, which reacts wrongly. These are only those from ooxml, not from binary format.

The calculation is in method EnhancedCustomShape2d::SetHandleControllerPosition in svx\source\customshapes\EnhancedCustomShape2d.cxx. The relevant part starts about #1230

The relation ship between handle position and adjustment value is in most cases not direct but via formulas. For to get an adjustment value from a handle position you need to apply the formulas backwards.

It might be possible to identify handles, which behave similar. For example some Star-shapes use the adjust value as factor to the radius with 0 in center and 1 at the edge. But other adjust values are used in other ways. I have not tried to find groups of similar usage yet.

What to do? In principle you can get the needed operations from the presets as defined in the standard. But how to organize that, so that it can be done step by step and perhaps can be done by several people? And, of course, the code should still be readable and clear.

Kind regards
Regina



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.