+2002-10-13 Rune Zedeler <rune@zedeler.dk>
+
+ * lily/accidental-engraver.cc: Fix
+ grace-in-the-beginning-of-measure bug caused by the resent
+ partial-measure fix.
+
+ * lily/stem.cc: reversed noteheads overlap half of the stem. (Full
+ overlap looks too crowded)
+
2002-10-13 Han-Wen Nienhuys <hanwen@cs.uu.nl>
* lily/parser.yy (assignment): allow SCM expression as assignment.
SCM barnum = get_property ("currentBarNumber");
SCM smp = get_property("measurePosition");
Moment mp = (unsmob_moment (smp)) ? *unsmob_moment (smp) : Moment (0);
- if(mp<0 && gh_number_p(barnum)) barnum = scm_int2num(gh_scm2int(barnum)-1);
+ if(mp.main_part_<Rational(0) && gh_number_p(barnum)) barnum = scm_int2num(gh_scm2int(barnum)-1);
bool extra_natural_b = get_property ("extraNatural") == SCM_BOOL_T;
for (int i = 0; i < accidentals_.size (); i++)
{
bool invisible = invisible_b (me);
- Real thick = 0.0;
- if (invisible)
- thick = gh_scm2double (me->get_grob_property ("thickness"))
- * me->get_paper ()->get_var ("linethickness");
+ Real thick = gh_scm2double (me->get_grob_property ("thickness"))
+ * me->get_paper ()->get_var ("linethickness");
Grob *hed = support_head (me);
Real l = Note_head::head_extent (heads[i], X_AXIS).length ();
Direction d = get_direction (me);
- heads[i]->translate_axis (l * d, X_AXIS);
+ /* reversed head should be shifted l-thickness, but this looks
+ too crowded, so we only shift l-0.5*thickness.
+ Notice that this leads to assymetry: Normal heads overlap
+ the stem 100% whereas reversed heads only overlaps the stem
+ 50% */
+ #define magic 0.5
+ heads[i]->translate_axis ((l-thick*magic) * d, X_AXIS);
if (invisible_b(me))
- heads[i]->translate_axis (-thick *2* d , X_AXIS);
+ heads[i]->translate_axis (-thick*(2-magic) * d , X_AXIS);
/* TODO: