]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-symbol-referencer.cc
* lily/side-position-interface.cc: remove add_staff_support ()
[lilypond.git] / lily / staff-symbol-referencer.cc
index 767aeb6d0098e1ba884e7f272e9a1a26792217b1..604eac7b3d837625d04012a2c9cb68aadb3e8006 100644 (file)
@@ -51,6 +51,16 @@ Staff_symbol_referencer::staff_space (Grob*me)
   return 1.0;
 }
 
+Real
+Staff_symbol_referencer::line_thickness (Grob*me) 
+{
+  Grob * st = get_staff_symbol (me);
+  if (st)
+    return Staff_symbol::get_line_thickness (st);
+
+  return me->get_paper ()->get_realvar (ly_symbol2scm ("linethickness"));
+}
+
 Real
 Staff_symbol_referencer::get_position (Grob*me) 
 {
@@ -63,15 +73,10 @@ Staff_symbol_referencer::get_position (Grob*me)
        - st->relative_coordinate (c, Y_AXIS);
 
       p += 2.0 * y / Staff_symbol::staff_space (st);
+      return p;
     }
-  else
-    {
-      SCM pos = me->get_grob_property ("staff-position");
-      if (gh_number_p (pos))
-       return gh_scm2double (pos);
-    }
-  
-  return  p;
+
+  return robust_scm2double ( me->get_grob_property ("staff-position"), p);
 }
 
 
@@ -86,7 +91,7 @@ LY_DEFINE(ly_grob_staff_position,
   Real pos = Staff_symbol_referencer::get_position (g);
 
   if (fabs (rint (pos) -pos) < 1e-6) // ugh.
-    return gh_int2scm (lrint (pos));
+    return gh_int2scm ((int) my_round (pos));
   else
     return gh_double2scm (pos);
 }
@@ -101,7 +106,6 @@ Staff_symbol_referencer::callback (SCM element_smob, SCM)
 {
   Grob *me = unsmob_grob (element_smob);
 
-  
   SCM pos = me->get_grob_property ("staff-position");
   Real off =0.0;
   if (gh_number_p (pos))