- 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);