+ Grob *g = info.grob ();
+
+ if (text_
+ && 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);
+}
+
+void
+Metronome_mark_engraver::acknowledge_break_alignment (Grob_info info)
+{
+ Grob *g = info.grob ();
+
+ if (text_
+ && support_
+ && dynamic_cast<Item *> (g))
+ text_->set_parent (g, X_AXIS);
+}
+
+void
+Metronome_mark_engraver::acknowledge_grob (Grob_info info)
+{
+ Grob *g = info.grob ();
+
+ if (text_)
+ for (SCM s = text_->get_property ("non-break-align-symbols");
+ scm_is_pair (s);
+ s = scm_cdr (s))
+ if (g->internal_has_interface (scm_car (s)))
+ text_->set_parent (g, X_AXIS);