From 0df4e8fea14c0cb51255a64cb23a8554dc62beae Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Sat, 18 Aug 2007 09:35:57 +1000 Subject: [PATCH] Don't count accidentals in paper-columns except as conditional items. --- lily/paper-column-engraver.cc | 15 ++++++++------- lily/paper-column.cc | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lily/paper-column-engraver.cc b/lily/paper-column-engraver.cc index 1396c1280d..481ffd1464 100644 --- a/lily/paper-column-engraver.cc +++ b/lily/paper-column-engraver.cc @@ -10,6 +10,7 @@ #include "system.hh" #include "international.hh" #include "accidental-placement.hh" +#include "accidental-interface.hh" #include "axis-group-interface.hh" #include "context.hh" #include "note-spacing.hh" @@ -196,14 +197,14 @@ Paper_column_engraver::stop_translation_timestep () Item *elem = items_[i]; Grob *col = Item::is_non_musical (elem) ? command_column_ : musical_column_; - if (!elem->get_parent (X_AXIS) - || !unsmob_grob (elem->get_object ("axis-group-parent-X"))) - { - Axis_group_interface::add_element (col, elem); - } - else if (Accidental_placement::has_interface (elem)) + if (!elem->get_parent (X_AXIS)) + elem->set_parent (col, X_AXIS); + if (!unsmob_grob (elem->get_object ("axis-group-parent-X"))) + elem->set_object ("axis-group-parent-X", col->self_scm ()); + + if (Accidental_placement::has_interface (elem)) Separation_item::add_conditional_item (col, elem); - else + else if (!Accidental_interface::has_interface (elem)) Separation_item::add_item (col, elem); } items_.clear (); diff --git a/lily/paper-column.cc b/lily/paper-column.cc index bb827db18b..53dfd4a906 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -152,6 +152,8 @@ Paper_column::minimum_distance (Grob *left, Grob *right) } while (flip (&d) != LEFT); + skys[RIGHT].merge (Separation_item::conditional_skyline (right, left)); + return max (0.0, skys[LEFT].distance (skys[RIGHT])); } -- 2.39.2