scm_gc_mark (last_text_);
}
+static bool
+safe_is_member (SCM scm, SCM lst)
+{
+ return scm_list_p (lst) == SCM_BOOL_T
+ && scm_member (scm, lst) != SCM_BOOL_F;
+}
+
void
Metronome_mark_engraver::acknowledge_break_aligned (Grob_info info)
{
Grob *g = info.grob ();
if (text_
- && g->get_property_data ("break-align-symbol")
+ && g->get_property ("break-align-symbol")
== ly_symbol2scm ("staff-bar"))
bar_ = g;
else if (text_
&& !support_
- && scm_member (g->get_property_data ("break-align-symbol"),
- text_->get_property_data ("break-align-symbols"))
- != SCM_BOOL_F)
+ && safe_is_member (g->get_property ("break-align-symbol"),
+ text_->get_property ("break-align-symbols")))
{
support_ = g;
text_->set_parent (g, X_AXIS);
Grob *g = info.grob ();
if (text_
- && scm_member (grob_name_scm (g),
- text_->get_property_data ("non-break-align-symbols"))
- != SCM_BOOL_F)
- text_->set_parent (g, X_AXIS);
+ && safe_is_member (grob_name_scm (g),
+ text_->get_property ("non-break-align-symbols")))
+ text_->set_parent (g, X_AXIS);
}
void
key-cancellation
key-signature
time-signature
- metronome-mark
custos)
;; unbroken
key-cancellation
key-signature
time-signature
- metronome-mark
custos)
;; begin of line
key-signature
staff-bar
time-signature
- metronome-mark
custos)))
(non-musical . #t)
(positioning-done . ,ly:break-alignment-interface::calc-positioning-done)
,(ly:make-simple-closure
(list ly:self-alignment-interface::x-aligned-on-self)))))
(self-alignment-X . ,LEFT)
- (break-align-symbol . metronome-mark)
- (break-align-symbols . (key-signature time-signature metronome-mark))
+ (break-align-symbols . (key-signature time-signature))
(non-break-align-symbols . (multi-measure-rest))
+ (non-musical . #t)
(meta . ((class . Item)
(interfaces . (break-alignable-interface
- break-aligned-interface
font-interface
metronome-mark-interface
self-alignment-interface