[Libreoffice-commits] core.git: tdf#106792: Fix "Geometry" property of changed-to-bezier SvxShapePolyPolygon

Stephan Bergmann 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. 
Quoting <https://bugs.documentfoundation.org/show_bug.cgi?id=106792#c10>:

"Bisecting further, under vclplug_gtk3 on Linux this happens to appear 
first with 
<https://cgit.freedesktop.org/libreoffice/core/commit/?id=093d7b8142d0cb224fcf23506f3b36f7a3a10d2c> 
'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 mailing list