DescriptionIssue 3330: redo much of the stencil stacking/spacing/empty-check
This contains a number of commits:
Stop quite weird positioning for dots
Some code here used a translation on dots that should never have had
an effect but causes problems in relation to the issue 3330 fix.
Use (+inf . -inf) consistently for empty stencil intervals
Make Box::is_empty more selective and create an axis-specific variant
Boxes are not really "empty" just because they show negative
advancement on some axis. A box is empty if its original dimensions
of (+inf . -inf) are still unchanged for both axes. And boxes can
make an impact in one axis but not another (pretty much the definition
of spacing), so is_empty can take an axis as argument now.
Let Stencil::is_empty use Box::is_empty
This is a change in semantics as an axis interval of '(1 . -1) is
considered empty as an interval, while it is not sufficient for making
a box axis empty. Things like backspaces would have similar metrics
and are different from no information at all.
Create Stencil::is_empty (Axis)
Give ly:stencil-empty? an optional axis argument
Let Box::translate ignore empty axes
Rewrite Stencil::add_at_edge to treat "spacing" stencils differently
A spacing stencil is one that is non-empty in its own axis, but empty
in the orthogonal axis. Since they don't actually have a bounding box
to convey, they don't need padding, and they don't suffer from the
equality of the lower left bounding box corner with the reference
point.
Let Stencil::align_to abort only if the stencil is empty in the alignment axis
Previously, the emptiness check was not axis specific.
Let stack-lines deal properly with vertical spacing (X-empty stencils)
simplify stack-stencils and rewrite stack-stencils-padding-list
implement stack-stencil-line in terms of stack-stencils
Let \hspace and \vspace use Y-empty and X-empty spacing, respectively
Keep buildings which are empty in either axis out of skylines
Issue 3330: bracketify-stencil moves grob's refpoint
Also fixes parenthesize-stencil.
Patch Set 1 #Patch Set 2 : Forgot the original fix #Patch Set 3 : Backspacing did not work #
Total comments: 5
Patch Set 4 : And another typo #Patch Set 5 : Fix chordname kerning #Patch Set 6 : Yet another typo #
Total comments: 7
Patch Set 7 : Fix spacing thinkos (hopefully) #
Total comments: 5
Patch Set 8 : Quite a bit of cleanup/reorg. chord flats are still uncorrected but not relevant for review. #Patch Set 9 : Simple fix of justify-lines. #
Total comments: 2
Patch Set 10 : Work out kinks in footnote ordering, add new "overdraw" argument to stencil-combine #Patch Set 11 : Fix \line \vspace #3 and a few other things #Patch Set 12 : Compatibility conversion for \vspace #Patch Set 13 : Create Stencil::stack and tune back chord flats #Patch Set 14 : Fix wordwrap-stencils to not get confused by spacing #Patch Set 15 : Add mindist argument to ly:stencil-stack, fix page accounting bug #
MessagesTotal messages: 46
|