X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finstrument-name-engraver.cc;h=d280913e53941da4a8c33486e373b71d79c12556;hb=8bfcd362b5beed8b7fd6905a2732e282cd1d5477;hp=4746d4a09d0553facca835899f7e2294b30ed15d;hpb=fa202533ea1095ae183b24bd34b0beefb51d47ac;p=lilypond.git diff --git a/lily/instrument-name-engraver.cc b/lily/instrument-name-engraver.cc index 4746d4a09d..d280913e53 100644 --- a/lily/instrument-name-engraver.cc +++ b/lily/instrument-name-engraver.cc @@ -3,11 +3,10 @@ source file of the GNU LilyPond music typesetter - (c) 2000--2006 Han-Wen Nienhuys + (c) 2000--2007 Han-Wen Nienhuys */ #include "engraver.hh" -#include "spanner.hh" #include "pointer-group-interface.hh" #include "side-position-interface.hh" #include "axis-group-interface.hh" @@ -91,15 +90,28 @@ Instrument_name_engraver::start_spanner () text_spanner_->set_bound (LEFT, col); text_spanner_->set_property ("text", short_text_); text_spanner_->set_property ("long-text", long_text_); + + /* + UGH, should handle this in Score_engraver. + */ + Grob *system = unsmob_grob (get_property ("rootSystem")); + if (system) + Axis_group_interface::add_element (system, text_spanner_); + else + text_spanner_->programming_error ("cannot find root system"); } void Instrument_name_engraver::acknowledge_axis_group (Grob_info info) { - if (text_spanner_ - && dynamic_cast (info.grob ()) + if (dynamic_cast (info.grob ()) && Axis_group_interface::has_axis (info.grob (), Y_AXIS) + + /* ugh. */ + + && !info.grob ()->internal_has_interface (ly_symbol2scm ("dynamic-interface")) + && !info.grob ()->internal_has_interface (ly_symbol2scm ("piano-pedal-interface")) && (!Align_interface::has_interface (info.grob ()))) { axis_groups_.push_back (info.grob ()); @@ -126,16 +138,6 @@ Instrument_name_engraver::stop_spanner () Pointer_group_interface::set_ordered (text_spanner_, ly_symbol2scm ("elements"), false); - System *system = get_root_system (text_spanner_); - - /* - UGH, should handle this in Score_engraver. - */ - if (system) - Axis_group_interface::add_element (system, text_spanner_); - else - text_spanner_->programming_error ("can't find root system"); - text_spanner_ = 0; } @@ -151,9 +153,6 @@ ADD_TRANSLATOR (Instrument_name_engraver, /* create */ "InstrumentName ", - /* accept */ - "", - /* read */ "currentCommandColumn " "shortInstrumentName "