aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2016-03-28 17:28:23 +0200
committerThomas White <taw@bitwiz.org.uk>2016-03-28 17:36:13 +0200
commit13ab84211488aa422c43756737664dec62bebb90 (patch)
treeb6afc5ea9bd51f16e3db6d2c11f995334de9dffd /src
parenta1737af28e6fc60e94823c283fb5609c0fde7b92 (diff)
Restore clipping
Diffstat (limited to 'src')
-rw-r--r--src/render.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/render.c b/src/render.c
index b91509f..2096492 100644
--- a/src/render.c
+++ b/src/render.c
@@ -216,11 +216,19 @@ static int draw_frame(cairo_t *cr, struct frame *fr, ImageStore *is,
/* Actually render the contents */
cairo_translate(cr, fr->pad_l, fr->pad_t);
for ( i=0; i<fr->n_paras; i++ ) {
+
+ double cur_h = paragraph_height(fr->paras[i]) + 20.0;
+
cairo_save(cr);
cairo_translate(cr, 0.0, hpos);
- render_paragraph(cr, fr->paras[i]);
- hpos += paragraph_height(fr->paras[i]) + 20.0;
+
+ if ( (hpos + cur_h > min_y) && (hpos < max_y) ) {
+ render_paragraph(cr, fr->paras[i]);
+ } /* else paragraph is not visible */
+
+ hpos += cur_h + 20.0;
cairo_restore(cr);
+
}
cairo_restore(cr);