X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcoherent-ligature-engraver.cc;h=160ca72963237956987a1d7cc973c12a9b9c6b97;hb=a7f82e4dc22fc6219a9fe0f6874f8c91e3f31f24;hp=0ed1405afa9ba09b579b5dc01902c90b8c48f66c;hpb=02c656d3b0cb895cc81b428d699d960746800e45;p=lilypond.git diff --git a/lily/coherent-ligature-engraver.cc b/lily/coherent-ligature-engraver.cc index 0ed1405afa..160ca72963 100644 --- a/lily/coherent-ligature-engraver.cc +++ b/lily/coherent-ligature-engraver.cc @@ -12,6 +12,8 @@ #include "staff-symbol-referencer.hh" #include "spanner.hh" #include "paper-column.hh" +#include "pitch.hh" +#include "pointer-group-interface.hh" /* * This abstract class serves as common superclass for all ligature @@ -94,10 +96,10 @@ if (incr_scm != SCM_EOL) /* (Paper_column::is_musical (l)) */ distance = 0.1; } me->warning (_f ("distance=%f", distance));//debug - Real strength = 1.0; - Spaceable_grob::add_spring (lc, rc, distance, strength); + Real inverse_strength = 1.0; + Spaceable_grob::add_spring (lc, rc, distance, inverse_strength); if (Item *rb = r->find_prebroken_piece (LEFT)) - Spaceable_grob::add_spring (lc, rb, distance, strength); + Spaceable_grob::add_spring (lc, rb, distance, inverse_strength); continue; } @@ -126,11 +128,12 @@ Coherent_ligature_engraver::get_set_column (Item *item, Paper_column *column) // Change column not only for targeted item (NoteColumn), but // also for all associated grobs (NoteSpacing, SeparationItem). Grob *sl = Staff_symbol_referencer::get_staff_symbol (item); - for (SCM tail = parent->get_property ("elements"); - scm_is_pair (tail); - tail = scm_cdr (tail)) + + extract_item_set (parent, "elements", elements); + + for (int i = elements.size (); i--;) { - Item *sibling = unsmob_item (scm_car (tail)); + Item *sibling = elements[i]; if ((sibling) && (Staff_symbol_referencer::get_staff_symbol (sibling) == sl)) { @@ -214,6 +217,8 @@ Coherent_ligature_engraver::typeset_ligature (Spanner *ligature, collect_accidentals (ligature, primitives); } +#include "translator.icc" + ADD_TRANSLATOR (Coherent_ligature_engraver, /* descr */ "This is an abstract class. Subclasses such as Gregorian_ligature_engraver handle ligatures by glueing special ligature heads together.", /* creats*/ "",