static Interval width (Grob *);
static Interval relative_width (Grob *, Grob *);
static Grob *extremal_break_aligned_grob (Grob *, Direction, Interval *);
- static void set_distance (Drul_array<Item *>, Real);
+ static bool set_distance (Drul_array<Item *>, Real);
static void set_skyline_distance (Drul_array<Item*>, Real);
static void add_item (Grob *, Item *);
static void add_conditional_item (Grob *, Grob *);
Separation_item::set_distance (Drul_array<Item*> (lb, r), padding);
}
- Separation_item::set_distance (Drul_array<Item *> (l, r), padding);
+ if (Separation_item::set_distance (Drul_array<Item *> (l, r), padding))
+ break;
/*
this grob doesn't cause a constraint. We look further until we
}
}
-void
+bool
Separation_item::set_distance (Drul_array<Item *> items,
Real padding)
{
&& !Item::is_non_musical (items[RIGHT]))
{
set_skyline_distance (items, padding);
- return;
+ return true;
}
Interval li (Separation_item::width (items[LEFT]));
if (rod.distance_ > 0)
rod.add_to_cols ();
+ return true;
}
+ return false;
}
/*
(avoid-slur . inside)
(X-extent . ,ly:axis-group-interface::width)
(Y-extent . ,ly:axis-group-interface::height)
+ (skylines . ,ly:separation-item::calc-skylines)
(meta . ((class . Item)
(interfaces . (spacing-interface
separation-item-interface))))))