]> granicus.if.org Git - graphviz/commitdiff
fix breakage to textparas in htmltables
authorellson <devnull@localhost>
Thu, 30 Aug 2007 22:00:20 +0000 (22:00 +0000)
committerellson <devnull@localhost>
Thu, 30 Aug 2007 22:00:20 +0000 (22:00 +0000)
lib/common/htmltable.c
lib/common/htmltable.h
plugin/pango/gvrender_pango.c

index 1bdfa8a06f3477a25e79faa1dbb59cd3d55f3bef..e1bb18b9fcb84798eacf615914b7d5f4b0d27b75 100644 (file)
@@ -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;
index 2d0684fb5edac485b28f07eccc352e6908d21034..a8dfdc19f3f8197b3f1b9ed130931fa4408c8a6b 100644 (file)
@@ -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 {
index 99d3e974d86e7438de8c93b28616b86205875d86..e3ca23e6f9a83b2e54d76edbf8d8928a2cb722a1 100644 (file)
@@ -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)