if (ly_is_equal (text, scm_from_locale_string (" ")))
{
if (last_text_)
- last_text_->set_property ("self-alignment-X", scm_from_int (LEFT));
+ last_text_->set_property ("self-alignment-X",
+ get_property ("lyricMelismaAlignment"));
}
else
text_ = make_item ("LyricText", event_->self_scm ());
}
+
+ Context *voice = get_voice_to_lyrics (context ());
+ if (last_text_
+ && voice
+ && to_boolean (voice->get_property ("melismaBusy"))
+ && !to_boolean (context ()->get_property ("ignoreMelismata")))
+ last_text_->set_property ("self-alignment-X",
+ get_property ("lyricMelismaAlignment"));
}
Context *
get_voice_to_lyrics (Context *lyrics)
{
+ bool searchForVoice = to_boolean (lyrics->get_property ("searchForVoice"));
+
SCM avc = lyrics->get_property ("associatedVoiceContext");
if (Context *c = unsmob_context (avc))
return c;
if (scm_is_string (voice_name))
nm = ly_scm2string (voice_name);
- else if (nm == "")
+ else if (nm == "" || !searchForVoice)
return 0;
else
{
/* read */
"ignoreMelismata "
"includeGraceNotes "
- "lyricMelismaAlignment ",
+ "lyricMelismaAlignment "
+ "searchForVoice",
/* write */
""