{
if(side==opposite)
{
- bool snug = (edges[primary].aligned && aligned && !split_here);
+ bool snug = (internal_aligned && aligned && !split_here);
add_constraint(wdg, get_order_constraint(primary, !snug), primary);
if(first)
- edges[side].add(wdg, aligned);
+ edges[side].add(wdg, (aligned && gravity==opposite));
}
else if(side==primary)
- next.add(wdg, (aligned && gravity==primary));
+ next.add(wdg, aligned);
else
{
if(edges[side].aligned && aligned)
void LinearArrangement::finish_slot()
{
+ internal_aligned = next.aligned;
+ if(gravity!=primary)
+ next.aligned = false;
edges[primary] = next;
next.clear();
split_here = false;