]> git.donarmstrong.com Git - lilypond.git/commitdiff
More tweaks to Note_spacing.
authorJoe Neeman <joeneeman@gmail.com>
Mon, 6 Aug 2007 06:22:19 +0000 (16:22 +1000)
committerJoe Neeman <joeneeman@gmail.com>
Mon, 6 Aug 2007 06:22:19 +0000 (16:22 +1000)
Increase spacing slightly in cases where near-collisions would occur.
Correct the shifting and raising used for combining skylines for Note_spacing.

lily/note-spacing.cc
lily/spacing-interface.cc

index af8fb0d6e09f3aff39c97950278f75722a06653d..e41046bc45b1eb4917ec6f69a11ac68be39b9197 100644 (file)
@@ -69,7 +69,7 @@ Note_spacing::get_spacing (Grob *me, Item *right_col,
   Drul_array<Skyline> skys = Spacing_interface::skylines (me, right_col);
   Real distance = skys[LEFT].distance (skys[RIGHT]);
   Real min_dist = max (0.0, distance);
-  Real min_desired_space = left_head_end + (min_dist - left_head_end) / 2;
+  Real min_desired_space = left_head_end + (min_dist - left_head_end + base_space - increment) / 2;
   Real ideal = base_space - increment + left_head_end;
 
   /* If we have a NonMusical column on the right, we measure the ideal distance
index 8d1e0b036ade24df978d0370e4d31ba72bc993b7..1cf1a02cdc941a30a54e2c0e7cfab31aac668484 100644 (file)
@@ -58,11 +58,12 @@ Spacing_interface::skylines (Grob *me, Grob *right_col)
            {
              SCM sky_scm = g->get_property ("horizontal-skylines");
              Skyline_pair *sky = Skyline_pair::unsmob (sky_scm);
-             Real shift = g->pure_relative_y_coordinate (system, 0, INT_MAX);
-             Real raise = g->relative_coordinate (columns[d], X_AXIS);
+
+             extract_grob_set (g, "elements", elts);
+             Grob *ycommon = common_refpoint_of_array (elts, g, Y_AXIS);
+             Real shift = ycommon->pure_relative_y_coordinate (system, 0, INT_MAX);
 
              skylines[d].shift (-shift);
-             skylines[d].raise (-raise);
 
              if (sky)
                skylines[d].merge ((*sky)[-d]);
@@ -73,7 +74,6 @@ Spacing_interface::skylines (Grob *me, Grob *right_col)
                skylines[d].merge (Separation_item::conditional_skyline (items[d][i], items[LEFT][0]));
 
              skylines[d].shift (shift);
-             skylines[d].raise (raise);
            }
        }
     }