X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmetronome-engraver.cc;h=0a41fc97abdb61fb1dde875722a7a565716b55a6;hb=d0a10b130ca01f3923b6a793a785d1d66455ab55;hp=aed027544c498ac6a65fe607f9e74b740b57283c;hpb=19b37df119ff6ca84421d984fe1d33112ad08299;p=lilypond.git diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc index aed027544c..0a41fc97ab 100644 --- a/lily/metronome-engraver.cc +++ b/lily/metronome-engraver.cc @@ -47,6 +47,7 @@ protected: SCM last_text_; DECLARE_ACKNOWLEDGER (break_aligned); + DECLARE_ACKNOWLEDGER (break_alignment); DECLARE_ACKNOWLEDGER (grob); protected: @@ -92,11 +93,20 @@ Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info) else if (text_ && !support_ && safe_is_member (g->get_property ("break-align-symbol"), - text_->get_property ("break-align-symbols"))) - { - support_ = g; - text_->set_parent (g, X_AXIS); - } + text_->get_property ("break-align-symbols")) + && Item::break_visible (g)) + support_ = g; +} + +void +Metronome_mark_engraver::acknowledge_break_alignment (Grob_info info) +{ + Grob *g = info.grob (); + + if (text_ + && support_ + && dynamic_cast (g)) + text_->set_parent (g, X_AXIS); } void @@ -150,7 +160,7 @@ Metronome_mark_engraver::process_music () SCM duration = get_property ("tempoUnitDuration"); SCM text = get_property ("tempoText"); - if ( ( (unsmob_duration (duration) && scm_is_number (count)) + if ( ( (unsmob_duration (duration) && scm_is_true (count)) || Text_interface::is_markup (text) ) && !(ly_is_equal (count, last_count_) && ly_is_equal (duration, last_duration_) @@ -176,6 +186,7 @@ Metronome_mark_engraver::process_music () ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned); +ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_alignment); ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob); ADD_TRANSLATOR (Metronome_mark_engraver,