From 8286b93ea3f23d67e2317d6fc4ee6f474412b69c Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Fri, 24 Sep 2004 17:56:58 +0000 Subject: Page-break penalties were calculated by taking the amount of spare space on the page (in internal units) and squaring it. This was fine except that fixed penalties weren't scaled by the size of an internal unit, so the page- breaking changed when the units were changed. Rather than scaling all the fixed penalties, scale the space into 1/4096 point units before squaring it. [originally from svn r4575] --- bk_paper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bk_paper.c b/bk_paper.c index cab3a11..c37d646 100644 --- a/bk_paper.c +++ b/bk_paper.c @@ -1604,7 +1604,8 @@ static page_data *page_breaks(line_data *first, line_data *last, */ if (m != last && m->next && !m->next->page_break) { - int x = this_height - minheight; + int x = (this_height - minheight) / FUNITS_PER_PT * + 4096.0; int xf; xf = x & 0xFF; -- cgit v1.1