From c39fcd65b6b9cc5712399e0c6159365cb696cfb5 Mon Sep 17 00:00:00 2001 From: ellson Date: Thu, 30 Aug 2007 22:00:20 +0000 Subject: [PATCH] fix breakage to textparas in htmltables --- lib/common/htmltable.c | 4 ++++ lib/common/htmltable.h | 2 +- plugin/pango/gvrender_pango.c | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/common/htmltable.c b/lib/common/htmltable.c index 1bdfa8a06..e1bb18b9f 100644 --- a/lib/common/htmltable.c +++ b/lib/common/htmltable.c @@ -173,6 +173,8 @@ emit_htextparas(GVJ_t* job, int nparas, htextpara_t* paras, pointf p, tl.fontname = fname_; tl.fontsize = fsize_; tl.xshow = ti->xshow; + tl.dpi = ti->dpi; + tl.yoffset = ti->yoffset; tl.postscript_alias = ti->postscript_alias; tl.layout = ti->layout; tl.width = paras[i].size; @@ -805,6 +807,8 @@ size_html_txt(graph_t *g, htmltxt_t* ftxt, htmlenv_t* env) ftxt->paras[i].items[j].str = lp.str; ftxt->paras[i].items[j].size = sz.x; ftxt->paras[i].items[j].xshow = lp.xshow; + ftxt->paras[i].items[j].dpi = lp.dpi; + ftxt->paras[i].items[j].yoffset = lp.yoffset; ftxt->paras[i].items[j].postscript_alias = lp.postscript_alias; ftxt->paras[i].items[j].layout = lp.layout; ftxt->paras[i].items[j].free_layout = lp.free_layout; diff --git a/lib/common/htmltable.h b/lib/common/htmltable.h index 2d0684fb5..a8dfdc19f 100644 --- a/lib/common/htmltable.h +++ b/lib/common/htmltable.h @@ -69,7 +69,7 @@ extern "C" { void *layout; void (*free_layout) (void *layout); htmlfont_t *font; - double size; /* size of text item according to font */ + double size, dpi, yoffset; /* size of text item according to font */ } textitem_t; typedef struct { diff --git a/plugin/pango/gvrender_pango.c b/plugin/pango/gvrender_pango.c index 99d3e974d..e3ca23e6f 100644 --- a/plugin/pango/gvrender_pango.c +++ b/plugin/pango/gvrender_pango.c @@ -232,7 +232,6 @@ static void cairogen_textpara(GVJ_t * job, pointf p, textpara_t * para) obj_state_t *obj = job->obj; cairo_t *cr = (cairo_t *) job->context; pointf offset; - PangoLayout *layout = (PangoLayout*)(para->layout); cairo_set_dash (cr, dashed, 0, 0.0); /* clear any dashing */ cairogen_set_color(cr, &(obj->pencolor)); @@ -249,9 +248,10 @@ static void cairogen_textpara(GVJ_t * job, pointf p, textpara_t * para) offset.x = para->width / 2.0; break; } + offset.y = para->yoffset; - cairo_move_to (cr, p.x-offset.x, -p.y - para->yoffset); - pango_cairo_show_layout(cr, layout); + cairo_move_to (cr, p.x-offset.x, -p.y-offset.y); + pango_cairo_show_layout(cr, (PangoLayout*)(para->layout)); } static void cairogen_set_penstyle(GVJ_t *job, cairo_t *cr) -- 2.40.0