Skip to content

Generalize sticky grobs

Jean Abou Samra requested to merge jeanas/lilypond:sticky into master

Apologies for the large MR, but doing this piecemeal would leave things in bad half-baked intermediate states.

This is a refactoring intended at eliminating the pattern of having two identical or very similar grob definitions between which the main difference is that one is an Item whereas the other is a Spanner. Examples:

  • FootnoteItem and FootnoteSpanner,
  • BalloonTextItem and BalloonTextSpanner,
  • ControlPolygonItem and ControlPolygonSpanner, ControlPointItem and ControlPointSpanner.

The proposal is that the same grob definition can be used to create grobs of different classes. In this MR, the above types are unified into Footnote, BalloonText, ControlPolygon and ControlPoint. When the grob definition does not mandate a class, it is the job of engravers to choose whether to make the items or spanner version.

Possible follow-ups:

Edited by Jean Abou Samra

Merge request reports