+ support_ = 0;
+ bar_ = 0;
+ tempo_ev_ = 0;
+}
+
+void
+Metronome_mark_engraver::listen_tempo_change (Stream_event *ev)
+{
+ ASSIGN_EVENT_ONCE (tempo_ev_, ev);
+}
+
+static bool
+safe_is_member (SCM scm, SCM lst)
+{
+ return ly_is_list (lst) && scm_is_true (scm_member (scm, lst));
+}
+
+void
+Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info)
+{
+ Grob *g = info.grob ();
+
+ if (text_
+ && scm_is_eq (g->get_property ("break-align-symbol"),
+ ly_symbol2scm ("staff-bar")))
+ bar_ = g;
+ else if (text_
+ && !support_
+ && safe_is_member (g->get_property ("break-align-symbol"),
+ text_->get_property ("break-align-symbols"))
+ && Item::break_visible (g))
+ {
+ support_ = g;
+ text_->set_parent (g, X_AXIS);
+ }
+ if (bar_ || support_)
+ text_->set_property ("non-musical", SCM_BOOL_T);