]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/volta-bracket.cc
Use double ; in comment (single ; sometimes cause trouble)
[lilypond.git] / lily / volta-bracket.cc
index f34b060fd64763185d504eeca2cd69eba02c50b1..7b0fd1341179b4cddc88e5293933debdcb4eb6b6 100644 (file)
@@ -52,7 +52,6 @@ Volta_bracket_interface::print (SCM smob)
                                             == (Spanner *)me);
 
   Output_def *layout = me->layout ();
-  Real half_space = 0.5;
 
   Item *bound = dynamic_cast<Spanner *> (me)->get_bound (LEFT);
 
@@ -92,7 +91,7 @@ Volta_bracket_interface::print (SCM smob)
 
   Interval empty;
   Offset start;
-  start[X_AXIS] = me->spanner_length () - left - half_space;
+  start[X_AXIS] = me->spanner_length () - left;
 
   /*
     ugh, Tuplet_bracket should use Horizontal_bracket, not the other way around.
@@ -128,6 +127,19 @@ Volta_bracket_interface::modify_edge_height (Spanner *me)
   bool no_vertical_start = orig_span && !broken_first_bracket;
   bool no_vertical_end = orig_span && !broken_last_bracket;
 
+  extract_grob_set (me, "bars", bars);
+  Grob *endbar = bars.size () ? bars.back () : 0;
+  SCM glyph = endbar ? endbar->get_property ("glyph-name") : SCM_EOL;
+
+  string str;
+  if (scm_is_string (glyph))
+    str = ly_scm2string (glyph);
+  else
+    str = "|";
+
+  no_vertical_end |= ly_scm2bool (scm_call_1 (ly_lily_module_constant ("volta-bracket::calc-hook-visibility"),
+                                             ly_string2scm (str)));
+
   if (no_vertical_end || no_vertical_start)
     {
       Drul_array<Real> edge_height = robust_scm2interval (me->get_property ("edge-height"),
@@ -160,5 +172,6 @@ ADD_INTERFACE (Volta_bracket_interface,
                "bars "
                "thickness "
                "height "
+               "shorten-pair "
               );