Hi, one more time a question about the order of operations.
In the following MWE I use ly:grob-set-property! in the before-line-breaking callback to set the X-offset property of the NoteHead's parent NoteColumn. This has the expected effect and visually offsets the note column accordingly, but when I read out the property with ly:grob-property in the after-line-breaking callback (the stencil callback that I actually use behaves the same) it returns '(), i.e. "unset". \version "2.19.54" { \override NoteHead.before-line-breaking = #(lambda (nh) (let ((nc (ly:grob-parent nh Y))) (ly:grob-set-property! nc 'X-offset 4))) \override NoteHead.after-line-breaking = #(lambda (nh) (let ((nc (ly:grob-parent nh Y))) (ly:message "offset : ~a" (ly:grob-property nc 'X-offset)))) c'1 } I'm somewhat confused that at the later point in time the property seemingly isn't present although it obviously does what I expect it to do. The background is: I need to offset the note column to make space for an object left to it. As I can't do that automatically I want to write out a message telling the user to what value he has to set the x offset. This setting of the x offset happens during before-line-breaking, they can't use \override in the input files. With the behaviour as I see it I can only say "please add N to your current X-offset" (instead of "set X-offset to M"). Any explanations or suggestions? TIA Urs -- u...@openlilylib.org https://openlilylib.org http://lilypondblog.org _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user