summaryrefslogtreecommitdiff
path: root/src/ui/documentwidget.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-02-14 15:14:12 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-02-14 15:14:12 +0200
commit056b79839f7b0ecb503f223e483d97841c917bc8 (patch)
treee3784c46dcd1701919a28e7cc7a7b9c548496cb5 /src/ui/documentwidget.c
parentf81dcd10b9c09524a00b3b819679eca1d7ad6bf5 (diff)
DocumentWidget: Alignment excludes banner
Short pages are vertically centered, but the site banner should be excluded from this because it is not part of the actual page contents.
Diffstat (limited to 'src/ui/documentwidget.c')
-rw-r--r--src/ui/documentwidget.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c
index 6ec76c0a..e9753fec 100644
--- a/src/ui/documentwidget.c
+++ b/src/ui/documentwidget.c
@@ -327,14 +327,18 @@ static iRect documentBounds_DocumentWidget_(const iDocumentWidget *d) {
327 rect.pos.x = mid_Rect(bounds).x - rect.size.x / 2; 327 rect.pos.x = mid_Rect(bounds).x - rect.size.x / 2;
328 rect.pos.y = top_Rect(bounds); 328 rect.pos.y = top_Rect(bounds);
329 rect.size.y = height_Rect(bounds) - margin; 329 rect.size.y = height_Rect(bounds) - margin;
330 if (!hasSiteBanner_GmDocument(d->doc)) { 330 const iGmRun *banner = siteBanner_GmDocument(d->doc);
331 if (!banner) {
331 rect.pos.y += margin; 332 rect.pos.y += margin;
332 rect.size.y -= margin; 333 rect.size.y -= margin;
333 } 334 }
334 const iInt2 docSize = size_GmDocument(d->doc); 335 const iInt2 docSize = size_GmDocument(d->doc);
335 if (docSize.y < rect.size.y) { 336 if (docSize.y < rect.size.y) {
336 /* Center vertically if short. */ 337 /* Center vertically if short. There is one empty paragraph line's worth of margin
337 int offset = (rect.size.y - docSize.y) / 2; 338 between the banner and the page contents. */
339 const int bannerHeight = banner ? height_Rect(banner->visBounds) : 0;
340 int offset = iMax(0, (rect.size.y + margin - docSize.y - bannerHeight -
341 lineHeight_Text(paragraph_FontId)) / 2);
338 rect.pos.y += offset; 342 rect.pos.y += offset;
339 rect.size.y = docSize.y; 343 rect.size.y = docSize.y;
340 } 344 }