X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmelody-engraver.cc;h=e7cf07292a83f297fbdf43355f93eda917d2d678;hb=b5b3e36d04fe1a35c9ffc5671b1351394783fbf6;hp=0c9644e3843f9eb340951cc76a01b8cea28fe287;hpb=89b7e75f6888d2020f7fe8b258e818c0c5e7a223;p=lilypond.git diff --git a/lily/melody-engraver.cc b/lily/melody-engraver.cc index 0c9644e384..e7cf07292a 100644 --- a/lily/melody-engraver.cc +++ b/lily/melody-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,6 +33,7 @@ protected: DECLARE_ACKNOWLEDGER (slur); TRANSLATOR_DECLARATIONS (Melody_engraver); void stop_translation_timestep (); + void process_acknowledged (); void process_music (); }; @@ -49,8 +50,12 @@ Melody_engraver::process_music () melody_item_ = 0; } +/* + Used to be in stop_translation_timestep, but grobs can't + be created here. +*/ void -Melody_engraver::stop_translation_timestep () +Melody_engraver::process_acknowledged () { if (stem_ && !is_direction (stem_->get_property_data ("neutral-direction"))) @@ -66,14 +71,18 @@ Melody_engraver::stop_translation_timestep () Melody_spanner::add_stem (melody_item_, stem_); } } +} + +void +Melody_engraver::stop_translation_timestep () +{ stem_ = 0; } void -Melody_engraver::acknowledge_slur (Grob_info info) +Melody_engraver::acknowledge_slur (Grob_info /* info */) { - if (!info.grob ()->internal_has_interface (ly_symbol2scm ("cross-staff-stub-interface"))) - melody_item_ = 0; + melody_item_ = 0; } void @@ -84,8 +93,13 @@ Melody_engraver::acknowledge_stem (Grob_info info) #include "translator.icc" -ADD_ACKNOWLEDGER (Melody_engraver, stem); -ADD_ACKNOWLEDGER (Melody_engraver, slur); + +void +Melody_engraver::boot () +{ + ADD_ACKNOWLEDGER (Melody_engraver, stem); + ADD_ACKNOWLEDGER (Melody_engraver, slur); +} ADD_TRANSLATOR (Melody_engraver, /* doc */