Hi Harm,

On Tue, Oct 14, 2014 at 5:38 PM, Thomas Morley <thomasmorle...@gmail.com>
wrote:

> Hi folks,
>
> consider the following code.
>
>
>
> \version "2.19.13"
> %\version "2.16.0"
>
> add-to-script =
> #(define-event-function (parser location mrkp music)(markup? ly:music?)
>   #{
>     \tweak #'stencil
>       #(lambda (grob)
>          (let (
>                ;(X-offset (ly:grob-property grob 'X-offset))
>                )
>            (ly:stencil-combine-at-edge
>              (ly:script-interface::print grob)
>              X
>              RIGHT
>              (grob-interpret-markup grob (markup #:normal-text mrkp))
>              0)))
>     $music
>   #})
>
> { c''1 \add-to-script \markup "xxxxxxxxxxxxx" \trill }
>
>
>
> Hacking Script 'stencil I add markup to the default-stencil. Works as
> expected.
>
> Though, regard the local binding for X-offset.
> With 2.19.13:
> Commenting it will center the whole new Script-stencil above the parent.
> Uncomment it and you see the default Script-glyph in unchanged
> position and the additions right to it.
>
> That's unexpected, at least for me and doesn't happen with 2.16 (don't
> have 2.18 on this machine)
>
> Why does this happen? X-offset is _never_ called in the body!
> Shouldn't be the new stencil always be centered, because self-alignment-X
> is 0?
> I would expect a different alignment only, if I change the values for
> X-offset and/or self-alignment-X myself.
>

The function ly:grob-property evaluates callbacks.  If you define X-offset
using ly:grob-property-data you'll see no change.

I actually have a patch to add to the docstring of ly:grob-property
something about this.  I was wondering--too obscure?  No, I don't think
so!  This used to cause me no end of trouble with Y-offset callbacks.

Best,
David
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to