]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/piano-pedal-bracket.cc
*** empty log message ***
[lilypond.git] / lily / piano-pedal-bracket.cc
index 52afd47c530f2f1c8c67d6066926b4df7dc5fb47..e1c07623e4bf9193f61a76c11fa5ad5a7f02a9a6 100644 (file)
@@ -24,6 +24,7 @@ SCM
 Piano_pedal_bracket::print (SCM smob)
 {
   Spanner *me = dynamic_cast<Spanner*> (unsmob_grob (smob));
+  Spanner *orig = dynamic_cast<Spanner*> (me->original_); 
   
   Drul_array<bool> broken (false,false);
   Drul_array<Real> height = robust_scm2drul
@@ -47,9 +48,16 @@ Piano_pedal_bracket::print (SCM smob)
       Item *b = me->get_bound (d);
       broken[d] = b->break_status_dir () != CENTER;
       if (broken[d])
-       height[d] = 0.0;
-
-      Interval ext   = b->extent (common,  X_AXIS);
+       {
+         if (orig
+             && ((d == RIGHT && me->get_break_index () != orig->broken_intos_.size()-1)
+                 || (d == LEFT && me->get_break_index ())))
+           height[d] = 0.0;
+         else
+           flare[d] = 0.0; 
+       }
+      
+      Interval ext   = robust_relative_extent (b, common,  X_AXIS);
       span_points[d] = ext [broken[d] ?  RIGHT : LEFT];
     }
   while (flip (&d) != LEFT);
@@ -62,12 +70,11 @@ Piano_pedal_bracket::print (SCM smob)
     {
       height[LEFT] = 0;
       
-      Real padding = robust_scm2double (me->get_property ("if-text-padding"), 0);
+      Real padding = robust_scm2double (me->get_property ("bound-padding"), 0);
       
       span_points[LEFT] = padding
-       + textbit->extent (common, X_AXIS)[RIGHT];
+       + robust_relative_extent (textbit, common, X_AXIS)[RIGHT];
     }
-  
 
   Stencil m ;
   if (!span_points.is_empty () &&
@@ -76,7 +83,7 @@ Piano_pedal_bracket::print (SCM smob)
       m = Tuplet_bracket::make_bracket (me, Y_AXIS,
                                        Offset (span_points.length (), 0),
                                        height,
-                                       0.0,
+                                       Interval (),
                                        flare, shorten);
     }
   m.translate_axis (span_points[LEFT]
@@ -89,4 +96,4 @@ Piano_pedal_bracket::print (SCM smob)
 ADD_INTERFACE (Piano_pedal_bracket,"piano-pedal-bracket-interface",
               "The bracket of the piano pedal.  It can be tuned through the regular "
               "bracket properties.",
-              "edge-height shorten-pair bracket-flare pedal-text");
+              "bound-padding edge-height shorten-pair bracket-flare pedal-text");