It does looks reasonable to put the promise that a stencil does not change with line-spacing, near the definiton fo the stencil, rather than in a separate list.
Just one question. If we override the stencil \override NoteHead #'stencil = #stencil-notehead then formerly LilyPond would avoid drawing it until after note-spacing, giving an empty extent to note-spacing, so we would provide an estimated extent like \override NoteHead #'minimum-Y-extent = #'(-0.5 . 0.5) for use in spacing of notes and accidentals. Now it seems the default will be that a user's stencil *is* evaluated at the note-spacing stage, if the stencil it replaces was safe to evaluate at that time. Is that what you wanted? https://codereview.appspot.com/7300082/diff/4002/scm/define-grobs.scm File scm/define-grobs.scm (left): https://codereview.appspot.com/7300082/diff/4002/scm/define-grobs.scm#oldcode2728 scm/define-grobs.scm:2728: (define pure-print-callbacks This could have had a comment: "These print routines do not depend on the spacing of a line, and we require that they do not depend on the spacing of a line, so they can be evaluated to determine the space needed at the note-spacing stage." https://codereview.appspot.com/7300082/diff/4002/scm/output-lib.scm File scm/output-lib.scm (right): https://codereview.appspot.com/7300082/diff/4002/scm/output-lib.scm#newcode60 scm/output-lib.scm:60: ;; Using this as a callback for a grob's Y-extent promises ;; that the grob's stencil does not depend on line-spacing. ;; We use this promise to figure the space required by Clefs ;; and such at the note-spacing stage. https://codereview.appspot.com/7300082/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel