Bug 157215 - FILEOPEN PPTX: glue point escape directions are ignored for object specific glue points
Summary: FILEOPEN PPTX: glue point escape directions are ignored for object specific g...
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
(earliest affected) alpha0+
Hardware: All All
: medium enhancement
Assignee: Tibor Nagy
Depends on:
Blocks: Shape-Points
  Show dependency treegraph
Reported: 2023-09-12 20:38 UTC by Regina Henschel
Modified: 2023-10-01 10:37 UTC (History)
1 user (show)

See Also:
Crash report or crash signature:

gluepoints with escape directions (14.39 KB, application/vnd.openxmlformats-officedocument.presentationml.presentation)
2023-09-12 20:38 UTC, Regina Henschel

Note You need to log in before you can comment on or make changes to this bug.
Description Regina Henschel 2023-09-12 20:38:15 UTC
Created attachment 189531 [details]
gluepoints with escape directions

The attached file contains the shape "flowChartConnector". It defines leaving directions for its glue points. I have used the custGeom from the preset definition to be sure, that the error is not in the import of preset shapes.

A glue point in OOXML is defined in a <cxn> element. It has an "ang" attribute for the leaving direction and a "pos" element for the location of the glue point. These are read in ConnectionSiteContext. But when the read values are transferred to properties only "pos" is evaluated and "ang" is ignored. That happens in CustomShapeProperties::pushToPropSet().

I see no reason to ignore the "ang" attribute. We have the property css.drawing.EscapeDirection. That cannot hold arbitrary angles, but the actual angles used in the OOXML preset shapes can be represented by LEFT, UP, RIGHT and DOWN. ODF has the attribute draw:glue-point-leaving-directions for this.

We have already glue point leaving directions for user-defined glue points. So implementing a correct rendering should not be too hard.

The result of ignoring the "ang" attribute is, that the drawings in PowerPoint and LibreOffice look different when connectors together with such shapes are used.

You can see the escape directions in PowerPoint when you use the "elbow" or "curved" connector there. In LibreOffice those are the "Standard" and "Curved" connectors.