summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Harris <bjh21@bjh21.me.uk>2004-09-24 17:56:58 +0000
committerBen Harris <bjh21@bjh21.me.uk>2004-09-24 17:56:58 +0000
commit8286b93ea3f23d67e2317d6fc4ee6f474412b69c (patch)
tree54f12eb4562f838acc0a2a6de5f5b12c503a0a1e
parent09d5a75c61a3f53f66918b74051af27faca366bb (diff)
downloadhalibut-8286b93ea3f23d67e2317d6fc4ee6f474412b69c.zip
halibut-8286b93ea3f23d67e2317d6fc4ee6f474412b69c.tar.gz
halibut-8286b93ea3f23d67e2317d6fc4ee6f474412b69c.tar.bz2
halibut-8286b93ea3f23d67e2317d6fc4ee6f474412b69c.tar.xz
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]
-rw-r--r--bk_paper.c3
1 files changed, 2 insertions, 1 deletions
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;