On Sat, Mar 28, 2009 at 11:31 PM, Joe Neeman <joenee...@gmail.com> wrote:
> The problem is that the current support for conditional accidentals is > insufficient if there are multiple accidentals, not all of which are > tied (see bug 612). The reason is that the positions of all the > accidentals can change completely when an accidental is added or > removed. So I think we need to run the whole layout algorithm twice, > once with the conditional accidentals and once without, and I suggested > that copying all of the accidentals is the simplest way to do it. I > realize that this goes against the convention of only cloning items in > the breakable columns, but I don't see another way to do it; the I am worried that this will lead to all kinds of other problems, when other callbacks try to follow head -> accidental links, and screw up because they end up at the wrong accidental object. Is it not possible to have accidental place calculate two sets of offsets, and add some logic to make sure that the actual stencil and placement calculation does not get triggered during line breaking? Then after the linebreaking, one set of placements is used for positioning the accidentals. Of course there will be some ugly hacks needed (similar to the conditional skyline support) to extract the correct outline of the accidentals during spacing/linebreaking. > formatting of such accidentals seems to be completely tied to their > break status which justifies copying them for the same reason that we > copy items in the breakable columns. Not quite. I think the main reason for copying is that a breakable object may actually be present in two places (pre and post linebreak) at the same time. Consider eg. a key or clef change on a line break. In the case of accidentals, there is just at most one object, but possibly in a different X-position. -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel