]> git.donarmstrong.com Git - lilypond.git/commit
Improves horizontal spacing of vertical axis groups that span bars traverse.
authorMike Solomon <mike@apollinemike.com>
Sat, 1 Oct 2011 14:40:28 +0000 (16:40 +0200)
committerMike Solomon <mike@apollinemike.com>
Sat, 1 Oct 2011 14:40:28 +0000 (16:40 +0200)
commit4f49b000d6e257724e311b406e2346b8388c1f0e
tree6525fddbe871d397040143ecbda936339b11084d
parent0e6b0c50aad88203dfaa93f57d96a63fa8b8f124
Improves horizontal spacing of vertical axis groups that span bars traverse.

Fixes issue 1846.

This patch introduces the idea of a pure-from-neighbor-interface.
The interface provides support for grobs whose pure height is difficult
to estimate (any grob that crosses staffs likely suffers from this)
by allowing for the creation of spacing "stubs" in the crossed
vertical axis groups.  These stubs take their pure heights from their
neighbors.  So long as one knows that a grob fully crosses a vertical
axis group and the grob should take up the full vertical space of this
axis group for its rank, using approximations of pure height's from the
grob's neighbors ensures that it will be as tall as the rest of the
axis group without triggering a vertical alignment.
13 files changed:
input/regression/span-bar-allow-span-bar.ly [new file with mode: 0644]
lily/grob.cc
lily/include/grob.hh
lily/include/pure-from-neighbor-interface.hh [new file with mode: 0644]
lily/pure-from-neighbor-engraver.cc [new file with mode: 0644]
lily/pure-from-neighbor-interface.cc [new file with mode: 0644]
lily/span-bar-engraver.cc
lily/span-bar-stub-engraver.cc [new file with mode: 0644]
lily/span-bar.cc
ly/engraver-init.ly
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/output-lib.scm