-
- Real slt = me->get_paper ()->get_var ("linethickness");
- Real y = slt * thick/2 * ss;
- Box b(Interval (0, width), Interval (-y, y));
- Real ythick = slt * ss;
-
- Molecule m = Lookup::filledbox (b);
- Molecule yb = Lookup::filledbox (Box (Interval (-ythick, ythick), Interval (-ss, ss)));
-
- m.add_at_edge (X_AXIS, RIGHT, yb, -ythick);
- m.add_at_edge (X_AXIS, LEFT, yb, -ythick);
+ Real slt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
+ Real y = slt * thick_thick / 2 * ss;
+ Real ythick = hair_thick * slt * ss;
+ Box b (Interval (0.0, max (0.0, (width - 2 * ythick))), Interval (-y, y));
+
+ Real blot = width ? (.8 * min (y, ythick)) : 0.0;
+
+ Stencil m = Lookup::round_filled_box (b, blot);
+ Stencil yb = Lookup::round_filled_box (Box (Interval (-0.5, 0.5) * ythick, Interval (-ss, ss)), blot);
+
+ m.add_at_edge (X_AXIS, RIGHT, yb, 0);
+ m.add_at_edge (X_AXIS, LEFT, yb, 0);