}
};
-static int compare_paper_column_rank (Grob *const &a, Grob *const &b);
-
static bool
is_loose (Grob *g)
{
scm_is_pair (s); s = scm_cdr (s))
{
Grob *other = unsmob_grob (scm_caar (s));
- vsize j = binary_search (cols, other, &compare_paper_column_rank, col_index);
+ vsize j = binary_search (cols, other, Paper_column::less_than, col_index);
if (j != VPOS)
{
if (cols[j] == other)
description.end_rods_.push_back (Rod_description (j, scm_to_double (scm_cdar (s))));
}
}
+
if (!line_starter && to_boolean (col->get_property ("keep-inside-line")))
description.keep_inside_line_ = col->extent (col, X_AXIS);
+
description.break_permission_ = col->get_property ("line-break-permission");
return description;
}
if (!cols[i].keep_inside_line_.is_empty ())
{
spacer.add_rod (i - st, end - st, cols[i].keep_inside_line_[RIGHT]);
- spacer.add_rod (0, i - st, cols[i].keep_inside_line_[LEFT]);
+ spacer.add_rod (0, i - st, -cols[i].keep_inside_line_[LEFT]);
}
}
spacer.solve ((b == 0) ? line_len - indent : line_len, ragged);
Real f = spacer.force ();
force[b * breaks.size () + c] = f - (f < 0 ? f*f*f*f*4 : 0);
- if (end < cols.size () && cols[end].break_permission_ == force_break)
- break;
if (!spacer.fits ())
{
if (c == b + 1)
force[b * breaks.size () + c] = infinity_f;
break;
}
+ if (end < cols.size () && cols[end].break_permission_ == force_break)
+ break;
}
}
return force;
if (!cols[i].keep_inside_line_.is_empty ())
{
spacer.add_rod (i, cols.size (), cols[i].keep_inside_line_[RIGHT]);
- spacer.add_rod (0, i, cols[i].keep_inside_line_[LEFT]);
+ spacer.add_rod (0, i, -cols[i].keep_inside_line_[LEFT]);
}
}
return ret;
}
-static int
-compare_paper_column_rank (Grob *const &a,
- Grob *const &b)
-{
- return Paper_column::get_rank (a) - Paper_column::get_rank (b);
-}