]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/axis-group-interface.cc
Update texinfo.tex from Texinfo CVS
[lilypond.git] / lily / axis-group-interface.cc
index da08f53526eb4f1fa333df1126cd3ccdb77478c1..3e9450c846139f977af064db4ba1f596ae15f01c 100644 (file)
@@ -279,8 +279,10 @@ Axis_group_interface::combine_skylines (SCM smob)
   Grob *me = unsmob_grob (smob);
   extract_grob_set (me, "elements", elements);
   Grob *y_common = common_refpoint_of_array (elements, me, Y_AXIS);
+  Grob *x_common = common_refpoint_of_array (elements, me, X_AXIS);
 
-  assert (y_common == me);
+  if (y_common != me)
+    programming_error ("combining skylines that don't belong to me");
 
   Skyline_pair ret;
   for (vsize i = 0; i < elements.size (); i++)
@@ -291,6 +293,7 @@ Axis_group_interface::combine_skylines (SCM smob)
          Real offset = elements[i]->relative_coordinate (y_common, Y_AXIS);
          Skyline_pair other = *Skyline_pair::unsmob (skyline_scm);
          other.raise (offset);
+         other.shift (elements[i]->relative_coordinate (x_common, X_AXIS));
          ret.merge (other);
        }
     }
@@ -478,7 +481,7 @@ add_boxes (Grob *me, Grob *x_common, Grob *y_common, vector<Box> *const boxes, S
    positions, one for above the staff, one for below).
 
    In each pass, we loop through the unplaced grobs from left to right.
-   If the grob overlaps the right-most affected position, we place it
+   If the grob doesn't overlap the right-most affected position, we place it
    (and then update the right-most affected position to point to the right
    edge of the just-placed grob).  Otherwise, we skip it until the next pass.
 */
@@ -620,6 +623,7 @@ ADD_INTERFACE (Axis_group_interface,
               "elements "
               "keep-fixed-while-stretching "
               "max-stretch "
+              "no-alignment "
               "pure-Y-common "
               "pure-relevant-items "
               "pure-relevant-spanners "