- Score_element* me = (Score_element*)cme;
- Score_element *common = me->parent_l (axis);
- SCM support = me->get_elt_pointer ("side-support-elements");
- for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
+ Grob *me = unsmob_grob (element_smob);
+ Axis a = (Axis) ly_scm2int (axis);
+
+ return general_side_position (me, a, true);
+}
+
+
+/*
+ Puts the element next to the support, optionally taking in
+ account the extent of the support.
+*/
+SCM
+Side_position_interface::general_side_position (Grob * me, Axis a, bool use_extents)
+{
+ Real ss = Staff_symbol_referencer::staff_space (me);
+ SCM support = me->get_property ("side-support-elements");
+ Grob *common = common_refpoint_of_list (support, me->get_parent (a), a);
+ Grob * st = Staff_symbol_referencer::get_staff_symbol (me);
+ bool include_staff = (st
+ && a == Y_AXIS
+ && ly_c_number_p (me->get_property ("staff-padding")));
+
+ Interval dim;
+ if (include_staff)