[Libreoffice-commits] core.git: tdf#106792: Fix "Geometry" property of changed-to-bezier SvxShapePolyPolygon
sbergman at redhat.com
Thu Apr 6 09:14:02 UTC 2017
On 03/30/2017 04:07 PM, Regina Henschel wrote:
> the steps described in the issue do not crash for me, neither with 5.4.0
> nor with 5.2.6. But I am on Win7 and my graphic card is not able to use
> OpenGL. Has some tested, whether the crash only occur with OpenGl enabled?
> Stephan Bergmann schrieb:
>> Anybody familiar with that SvxShape stuff? I see there is both
>> SvxShapePolyPolygon and SvxShapePolyPolygonBezier classes in
>> include/svx/unoshape.hxx, and wonder whether it's plausible that an
>> originally straight-line polygon remains an SvxShapePolyPolygon when one
>> of its edges is manipulated with "Convert to Curve"? If it should
>> instead become an SvxShapePolyPolygonBezier then, then the proper fix
>> for <https://bugs.documentfoundation.org/show_bug.cgi?id=106792> "Error
>> when saving a polygon with points converted to curve" would probably
>> need to be done elsewhere.
Upon further inspection, that commit indeed was not the right fix.
"Bisecting further, under vclplug_gtk3 on Linux this happens to appear
'Resolves: tdf#92293 gtk3: get a11y working'. Turns out there's an
SdrPathObj and associated SvxShape (which is held weakly, so typically
disappears quickly and gets recreated when needed), and the SdrPathObj
changes its kind when the user turns one of its edges into a Bezier
curve. That should cause the associated SvxShape to be recreated as an
SvxShapePolyPolygonBezier instead of a SvxShapePolyPolygon the next time
it is needed. But with the a11y bridge enabled, the original
SvxShapePolyPolygon is apparently held strongly from somewhere, so the
change of the SdrPathObj's kind isn't reflected in the type of the
associated SvxShape as intended.
"So the commit from comment 4 was wrongly addressing symptoms, not the
root cause, and will be reverted again. Work on a proper fix is ongoing."
(Which could also explain why the problem doesn't appear on e.g. Windows.)
More information about the LibreOffice