]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/separation-item.cc
fix skyline thinko
[lilypond.git] / lily / separation-item.cc
index 8704a55b456fd4af6446cbc5d73ea4d07faaf2ef..00103c31d4ee5839682d375084b6c568ad39815f 100644 (file)
@@ -8,6 +8,7 @@
 
 #include "separation-item.hh"
 
+#include "axis-group-interface.hh"
 #include "lookup.hh"
 #include "stencil.hh"
 #include "skyline.hh"
@@ -106,65 +107,27 @@ Separation_item::boxes (Grob *me, Grob *left)
     {
       Item *il = dynamic_cast<Item *> (elts[i]);
       if (pc != il->get_column ())
-       {
-         continue;
-       }
+       continue;
+      if (Axis_group_interface::has_interface (il))
+       continue;
 
       Interval y (il->pure_height (ycommon, 0, very_large));
       Interval x (il->extent (pc, X_AXIS));
 
       Interval extra = robust_scm2interval (elts[i]->get_property ("extra-spacing-width"),
-                                           Interval (0, 0));
+                                           Interval (-0.1, 0.1));
       x[LEFT] += extra[LEFT];
       x[RIGHT] += extra[RIGHT];
       if (to_boolean (elts[i]->get_property ("infinite-spacing-height")))
        y = Interval (-infinity_f, infinity_f);
  
+      if (!x.is_empty () && !y.is_empty ())
       out.push_back (Box (x, y));
     }
 
   return out;      
 }
 
-/*
-  Try to find the break-aligned symbol in SEPARATION_ITEM that is
-  sticking out at direction D. The x size is put in LAST_EXT
-*/
-Grob *
-Separation_item::extremal_break_aligned_grob (Grob *me,
-                                             Direction d,
-                                             Interval *last_ext)
-{
-  Grob *col = dynamic_cast<Item *> (me)->get_column ();
-  last_ext->set_empty ();
-  Grob *last_grob = 0;
-
-  extract_grob_set (me, "elements", elts);
-  for (vsize i = elts.size (); i--;)
-    {
-      Grob *break_item = elts[i];
-      if (!scm_is_symbol (break_item->get_property ("break-align-symbol")))
-       continue;
-
-      if (!scm_is_pair (break_item->get_property ("space-alist")))
-       continue;
-
-      Interval ext = break_item->extent (col, X_AXIS);
-
-      if (ext.is_empty ())
-       continue;
-
-      if (!last_grob
-         || (last_grob && d * (ext[d]- (*last_ext)[d]) > 0))
-       {
-         *last_ext = ext;
-         last_grob = break_item;
-       }
-    }
-
-  return last_grob;
-}
-
 extern bool debug_skylines;
 MAKE_SCHEME_CALLBACK (Separation_item, print, 1)
 SCM