Scale entry spacing as well as font size if we use --avoid-overfull.

This commit is contained in:
Dianne Skoll
2026-02-27 23:47:19 -05:00
parent 1c20f54edb
commit 9a724d7618
2 changed files with 8 additions and 2 deletions

View File

@@ -56,6 +56,7 @@ my $settings = {
entry_size => 8, entry_size => 8,
border_size => 4, border_size => 4,
entry_spacing => 4,
line_thickness => 1, line_thickness => 1,
margin_top => 36, margin_top => 36,
@@ -188,6 +189,8 @@ if ($version) {
exit(0); exit(0);
} }
$settings->{entry_spacing} = $settings->{border_size};
if ($settings->{avoid_overfull_boxes}) { if ($settings->{avoid_overfull_boxes}) {
$settings->{fill_entire_page} = 1; $settings->{fill_entire_page} = 1;
} }

View File

@@ -610,6 +610,7 @@ sub draw_row
next if ($day < 1); next if ($day < 1);
if ($settings->{avoid_overfull_boxes}) { if ($settings->{avoid_overfull_boxes}) {
my $old_entry_size = $settings->{entry_size}; my $old_entry_size = $settings->{entry_size};
my $old_spacing = $settings->{entry_spacing};
my $drawn = 0; my $drawn = 0;
while ($settings->{entry_size} >= 2.0) { while ($settings->{entry_size} >= 2.0) {
my $h = $self->draw_day($cr, $settings, $so_far, $day, $col, 0); my $h = $self->draw_day($cr, $settings, $so_far, $day, $col, 0);
@@ -619,11 +620,13 @@ sub draw_row
last; last;
} }
$settings->{entry_size} -= 0.125; $settings->{entry_size} -= 0.125;
$settings->{entry_spacing} = $old_spacing * $settings->{entry_size} / $old_entry_size;
} }
if (!$drawn) { if (!$drawn) {
$self->draw_day($cr, $settings, $so_far, $day, $col, $height); $self->draw_day($cr, $settings, $so_far, $day, $col, $height);
} }
$settings->{entry_size} = $old_entry_size; $settings->{entry_size} = $old_entry_size;
$settings->{entry_spacing} = $old_spacing;
} else { } else {
$self->draw_day($cr, $settings, $so_far, $day, $col, $height); $self->draw_day($cr, $settings, $so_far, $day, $col, $height);
} }
@@ -735,8 +738,8 @@ sub draw_day
next; next;
} }
if ($done) { if ($done) {
$so_far += $settings->{border_size}; $so_far += $settings->{entry_spacing};
$entry_height += $settings->{border_size}; $entry_height += $settings->{entry_spacing};
} }
$done = 1; $done = 1;
my $h2 = $entry->render($self, $cr, $settings, $so_far, $day, $col, $height); my $h2 = $entry->render($self, $cr, $settings, $so_far, $day, $col, $height);