X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fledger-line-engraver.cc;h=550dc5a014ed95ec97da52e2ac4a6a96b7965050;hb=9f3572d98bb948c9689cd1f75401a029451fa001;hp=55c6b4bef17b278d80e60d22098b19ea19abbfea;hpb=04265f11d1f21416ccebd2dcaa1d903dc781b36e;p=lilypond.git diff --git a/lily/ledger-line-engraver.cc b/lily/ledger-line-engraver.cc index 55c6b4bef1..550dc5a014 100644 --- a/lily/ledger-line-engraver.cc +++ b/lily/ledger-line-engraver.cc @@ -14,8 +14,7 @@ class Ledger_line_engraver : public Engraver { Spanner *span_; - vector ledgered_grobs_; - + public: TRANSLATOR_DECLARATIONS (Ledger_line_engraver); @@ -28,7 +27,6 @@ protected: void start_spanner (); void stop_spanner (); - void stop_translation_timestep (); }; Ledger_line_engraver::Ledger_line_engraver () @@ -40,26 +38,9 @@ void Ledger_line_engraver::start_spanner () { assert (!span_); - span_ = make_spanner ("LedgerLineSpanner", SCM_EOL); - span_->set_bound (LEFT, unsmob_grob (get_property ("currentCommandColumn"))); -} - -void -Ledger_line_engraver::stop_translation_timestep () -{ - if (span_) - { - for (vsize i = 0; i < ledgered_grobs_.size (); i++) - { - if (!to_boolean (ledgered_grobs_[i]->get_property ("no-ledgers"))) - Pointer_group_interface::add_grob (span_, - ly_symbol2scm ("note-heads"), - ledgered_grobs_[i]); - } - } - ledgered_grobs_.clear (); + span_->set_bound (LEFT, unsmob_grob (get_property ("currentCommandColumn"))); } void @@ -95,7 +76,8 @@ Ledger_line_engraver::acknowledge_staff_symbol (Grob_info s) Spanner *sym = dynamic_cast (s.grob ()); if (!span_ - || (span_->get_bound (LEFT) != sym->get_bound (LEFT))) + || (span_->get_bound (LEFT) != sym->get_bound (LEFT) + && sym->get_bound (LEFT))) { stop_spanner (); start_spanner (); @@ -105,7 +87,12 @@ Ledger_line_engraver::acknowledge_staff_symbol (Grob_info s) void Ledger_line_engraver::acknowledge_ledgered (Grob_info s) { - ledgered_grobs_.push_back (s.grob ()); + if (span_) + { + if (!to_boolean (s.grob ()->get_property ("no-ledgers"))) + Pointer_group_interface::add_grob (span_, ly_symbol2scm ("note-heads"), + s.grob ()); + } } #include "translator.icc"