-\version "2.19.21"
+\version "2.19.46"
\header {
tagline = ##f
\context {
\type "Engraver_group"
\name "MarkLine"
- \consists "Output_property_engraver"
\consists "Axis_group_engraver"
\consists "Mark_engraver"
\consists "Metronome_mark_engraver"
%% and then run scripts/auxiliar/makelsr.py
%%
%% This file is in the public domain.
-\version "2.19.7"
+\version "2.19.46"
\header {
lsrtags = "contexts-and-engravers, specific-notation"
\description "Handles clefs, bar lines, keys, accidentals. It can contain
@code{Voice} contexts."
- \consists "Output_property_engraver"
-
\consists "Font_size_engraver"
\consists "Volta_engraver"
\consists "Font_size_engraver"
% must come before all
- \consists "Output_property_engraver"
\consists "Arpeggio_engraver"
\consists "Multi_measure_rest_engraver"
\consists "Text_spanner_engraver"
-\version "2.17.30"
+\version "2.19.46"
\header {
texidoc = "An empty barline does not confuse the spacing engine too much.
\name "Top"
\alias "Staff"
\type "Engraver_group"
- \consists "Output_property_engraver"
\consists "Bar_engraver"
\consists "Axis_group_engraver"
void stop_translation_timestep ();
};
+// We only run this in the Score context, so all events are likely to
+// find a target
void
Output_property_engraver::listen_apply_output (Stream_event *ev)
{
- /*
- UGH. Only swallow the output property event in the context
- it was intended for. This is inelegant but not inefficient.
- */
- if (context ()->is_alias (ev->get_property ("context-type")))
- props_.push_back (ev);
+ props_.push_back (ev);
}
void
if (scm_is_symbol (grob)
&& ly_symbol2string (grob) != inf.grob ()->name ())
continue;
+ SCM typ = o->get_property ("context-type");
SCM proc = o->get_property ("procedure");
- scm_call_3 (proc,
- inf.grob ()->self_scm (),
- d->self_scm (),
- context ()->self_scm ());
+ for (Context *c = d; c; c = c->get_parent_context ())
+ {
+ if (c->is_alias (typ))
+ scm_call_3 (proc,
+ inf.grob ()->self_scm (),
+ d->self_scm (),
+ c->self_scm ());
+ }
}
}
%%%% You should have received a copy of the GNU General Public License
%%%% along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
-\version "2.19.19"
+\version "2.19.46"
\context {
\name "Global"
\description "A context for displaying fret diagrams."
\consists "Fretboard_engraver"
- \consists "Output_property_engraver"
\consists "Axis_group_engraver"
\consists "Separating_line_group_engraver"
\consists "Font_size_engraver"
\type "Engraver_group"
\name "Staff"
- \consists "Output_property_engraver"
\consists "Bar_engraver"
\consists "Pure_from_neighbor_engraver"
%% Bar_engraver must be first so default bars aren't overwritten
\override Stem.neutral-direction = #UP
\override Beam.neutral-direction = #UP
- \consists "Output_property_engraver"
\consists "Font_size_engraver"
\consists "Separating_line_group_engraver"
\consists "Dot_column_engraver"
\consists "Font_size_engraver"
\consists "Pitched_trill_engraver"
- \consists "Output_property_engraver"
\consists "Arpeggio_engraver"
\consists "Multi_measure_rest_engraver"
\consists "Text_spanner_engraver"
\override DynamicText.extra-spacing-width = ##f
\consists "Span_bar_stub_engraver"
\consists "Span_arpeggio_engraver"
- \consists "Output_property_engraver"
systemStartDelimiter = #'SystemStartBracket
%% explicitly set instrument, so it is not inherited from the parent
instrumentName = #'()
\type "Engraver_group"
\name "Dynamics"
\alias "Voice"
- \consists "Output_property_engraver"
\consists "Bar_engraver"
\consists "Piano_pedal_engraver"
\consists "Script_engraver"
% \key, \transposition
\description "Typesets chord names."
- \consists "Output_property_engraver"
\consists "Separating_line_group_engraver"
\consists "Chord_name_engraver"
\consists "Axis_group_engraver"
repl, str)
return str
-@rule ((2, 19, 46), r"\context ... \modification -> \context ... \with \modification")
+@rule ((2, 19, 46), r"""\context ... \modification -> \context ... \with \modification
+\consists "Output_property_engraver" ->""")
def conv (str):
word=r'(?:#?"[^"]*"|\b' + wordsyntax + r'\b)'
mods = string.join (re.findall ("\n(" + wordsyntax + r")\s*=\s*\\with(?:\s|\\|\{)", str)
+ r"(?:new|context)\s*" + word
+ r"(?:\s*=\s*" + word + r")?)\s*)(\\(?:" + mods + "))",
r"\1\\with \2", str)
+
+ str = re.sub (r'\\(consists|remove)\s+"?Output_property_engraver"?\s*',
+ '', str)
return str
# Guidelines to write rules (please keep this at the end of this file)