[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Contexts affected by \override and \overrideProperty
From: |
David Kastrup |
Subject: |
Re: Contexts affected by \override and \overrideProperty |
Date: |
Wed, 20 Feb 2019 18:09:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
David Kastrup <address@hidden> writes:
> Urs Liska <address@hidden> writes:
>
>> Can someone explain to me why \overrideProperty Staff.BarLine.color
>> #red colors the barlines in *all* staves while \override
>> Staff.BarLine.color = #red only affects the current Staff context?
>
> Because the respective engraver is only active at Score level and
> overrides the properties in _all_ contexts of the given type.
Ok, things are more complicated than that. The respective events are
listened in at Score level. When a grob is acknowledged, it is
acknowledged in all contexts of the right type in suitable relation to
the source engraver of the grob. The end result is independent from
whatever context was current at the time the apply-output-event was
generated.
Making it dependent requires either having the Output_property_engraver
at all levels (as it had been before) which makes the current context be
reflected in just which of the various engravers is getting called, or
some support by the respective iterator (which does have a notion of
current context).
I lean towards calling the entire redesign a "thinko". Unfortunately,
there have been significant irreversible convert-ly rules involved. So
I need to figure out how to go from here.
--
David Kastrup