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 ())
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);
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];
}
}
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;
}