]> git.donarmstrong.com Git - lilypond.git/commitdiff
Don't count accidentals in paper-columns except as conditional items.
authorJoe Neeman <joeneeman@gmail.com>
Fri, 17 Aug 2007 23:35:57 +0000 (09:35 +1000)
committerJoe Neeman <joeneeman@gmail.com>
Fri, 17 Aug 2007 23:35:57 +0000 (09:35 +1000)
lily/paper-column-engraver.cc
lily/paper-column.cc

index 1396c1280d94f8815e0ce6ba32f5ee26fd41bd52..481ffd14645b049bb523a3d04d02b99f08282791 100644 (file)
@@ -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 ();
index bb827db18b72fe183cc0d7b9a59ea706710f572a..53dfd4a906a2b907baeb59ced8b2ae998bcd3a7e 100644 (file)
@@ -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]));
 }