CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/08/24 20:36:03

Modified files:
        .              : ChangeLog 
        lily           : beam.cc 

Log message:
        (print): fix X start/end points of isolated
        beamlets.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4076&tr2=1.4077&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/beam.cc.diff?tr1=1.310&tr2=1.311&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.4076 lilypond/ChangeLog:1.4077
--- lilypond/ChangeLog:1.4076   Wed Aug 24 19:56:08 2005
+++ lilypond/ChangeLog  Wed Aug 24 20:36:03 2005
@@ -1,5 +1,8 @@
 2005-08-24  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
+       * lily/beam.cc (print): fix X start/end points of isolated
+       beamlets.
+
        * scm/output-ps.scm (grob-cause): escape spaces in URLs.
 
        * lily/multi-measure-rest.cc (set_text_rods): new function.
Index: lilypond/lily/beam.cc
diff -u lilypond/lily/beam.cc:1.310 lilypond/lily/beam.cc:1.311
--- lilypond/lily/beam.cc:1.310 Sat Aug 13 21:35:23 2005
+++ lilypond/lily/beam.cc       Wed Aug 24 20:36:03 2005
@@ -280,8 +280,10 @@
 }
 
 /*
-  TODO: should not make beams per stem, but per Y-level; probably when
-  someone wants to sponsor feathered beaming.
+  I really enjoy spaghetti, but spaghetti should be kept on a plate
+  with a little garlic and olive oil. This is too much.
+
+  rewrite-me
 */
 MAKE_SCHEME_CALLBACK (Beam, print, 1);
 SCM
@@ -454,19 +456,25 @@
              - last_xposn
              + break_overshoot[RIGHT];
 
+         rw += stem_width / 2;
+         lw += last_stem_width / 2;
+
          Stencil rhalf = Lookup::beam (slope, rw, thick, blot);
          Stencil lhalf = Lookup::beam (slope, lw, thick, blot);
          for (int j = lfliebertjes.size (); j--;)
            {
              Stencil b (lhalf);
-             b.translate_axis (last_xposn - x0, X_AXIS);
-             b.translate_axis (slope * (last_xposn - x0) + bdy * 
lfliebertjes[j], Y_AXIS);
+             b.translate_axis (last_xposn - x0 - last_stem_width /2,
+                               X_AXIS);
+             b.translate_axis (slope * (last_xposn - x0)
+                               + bdy * lfliebertjes[j],
+                               Y_AXIS);
              the_beam.add_stencil (b);
            }
          for (int j = rfliebertjes.size (); j--;)
            {
              Stencil b (rhalf);
-             b.translate_axis (xposn - x0 - rw, X_AXIS);
+             b.translate_axis (xposn - x0 - rw + stem_width / 2, X_AXIS);
              b.translate_axis (slope * (xposn - x0 - rw)
                                + bdy * rfliebertjes[j], Y_AXIS);
              the_beam.add_stencil (b);
@@ -478,13 +486,14 @@
       last_beaming = this_beaming;
     }
 
-  the_beam.translate_axis (x0 - me->relative_coordinate (xcommon, X_AXIS), 
X_AXIS);
+  the_beam.translate_axis (x0 - me->relative_coordinate (xcommon, X_AXIS),
+                          X_AXIS);
   the_beam.translate_axis (pos[LEFT], Y_AXIS);
 
 #if (DEBUG_QUANTING)
   SCM quant_score = me->get_property ("quant-score");
-  if (to_boolean (me->get_layout ()->lookup_variable (ly_symbol2scm 
("debug-beam-quanting")))
-      && scm_is_string (quant_score))
+  SCM debug = me->get_layout ()->lookup_variable (ly_symbol2scm 
("debug-beam-quanting"));
+  if (to_boolean (debug) && scm_is_string (quant_score))
     {
 
       /*


_______________________________________________
Lilypond-cvs mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to