]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tuplet-bracket.cc
* lily/tie-formatting-problem.cc (score_configuration): use
[lilypond.git] / lily / tuplet-bracket.cc
index 0288939987958511468c5dbf6e327799f905ee02..a0f6ab8588df43b8e0026cf4ffda619eea35a9b5 100644 (file)
@@ -128,7 +128,7 @@ Tuplet_bracket::calc_connect_to_neighbors (SCM smob)
       
       Spanner *orig_spanner = dynamic_cast<Spanner*> (me->original ());
 
-      int neighbor_idx = me->get_break_index () - break_dir;
+      vsize neighbor_idx = me->get_break_index () - break_dir;
       if (break_dir
          && d == RIGHT
          && neighbor_idx < orig_spanner->broken_intos_.size ())
@@ -141,8 +141,7 @@ Tuplet_bracket::calc_connect_to_neighbors (SCM smob)
 
       connect_to_other[d]
        = (break_dir
-          && (neighbor_idx < orig_spanner->broken_intos_.size ()
-              && neighbor_idx >= 0)
+          && neighbor_idx < orig_spanner->broken_intos_.size ()
           && orig_spanner->broken_intos_[neighbor_idx]->is_live ());
     }
   while (flip (&d) != LEFT);
@@ -439,16 +438,16 @@ Tuplet_bracket::get_bounds (Grob *me, Grob **left, Grob **right)
   while (l < columns.size () && Note_column::has_rests (columns[l]))
     l++;
 
-  vsize r = columns.size () - 1;
-  while (r >= l && Note_column::has_rests (columns[r]))
+  vsize r = columns.size ();
+  while (r > l && Note_column::has_rests (columns[r-1]))
     r--;
 
   *left = *right = 0;
 
-  if (l <= r)
+  if (l < r)
     {
       *left = columns[l];
-      *right = columns[r];
+      *right = columns[r-1];
     }
 }
 
@@ -645,11 +644,13 @@ Tuplet_bracket::calc_positions (SCM smob)
       Real lp = scm_to_double (scm_car (ps));
       Real rp = scm_to_double (scm_cdr (ps));
 
-      /*
-       duh. magic.
-      */
+      Real ss = Staff_symbol_referencer::staff_space (me);
+      
       offset = lp + dir * (0.5 + scm_to_double (me->get_property ("padding")));
-      dy = rp - lp;
+      dy = (rp - lp);
+
+      dy *= ss;
+      offset *= ss;    
     }