]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-column-engraver.cc
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / lily / paper-column-engraver.cc
index 6ed851243d93809d2a6d226bd73faaf64d6cbb9c..481ffd14645b049bb523a3d04d02b99f08282791 100644 (file)
@@ -9,11 +9,14 @@
 #include "paper-column-engraver.hh"
 #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"
 #include "paper-column.hh"
 #include "pointer-group-interface.hh"
+#include "separation-item.hh"
 #include "staff-spacing.hh"
 #include "system.hh"
 #include "warn.hh"
@@ -192,12 +195,17 @@ Paper_column_engraver::stop_translation_timestep ()
   for (vsize i = 0; i < items_.size (); i++)
     {
       Item *elem = items_[i];
-      if (!elem->get_parent (X_AXIS)
-         || !unsmob_grob (elem->get_object ("axis-group-parent-X")))
-       {
-         bool br = Item::is_non_musical (elem);
-         Axis_group_interface::add_element (br ? command_column_ : musical_column_, elem);
-       }
+      Grob *col = Item::is_non_musical (elem) ? command_column_ : musical_column_;
+
+      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 if (!Accidental_interface::has_interface (elem))
+       Separation_item::add_item (col, elem);
     }
   items_.clear ();