]> granicus.if.org Git - graphviz/commitdiff
Fix attribute printing on selection
authorerg <devnull@localhost>
Thu, 1 Jul 2010 17:39:06 +0000 (17:39 +0000)
committererg <devnull@localhost>
Thu, 1 Jul 2010 17:39:06 +0000 (17:39 +0000)
cmd/smyrna/topviewfuncs.c

index 6fbfeff3e7240fc58b036a8437f1b9d24fc14d1c..c8d6b4940c3e7cdace60779d498f94aefd819a1b 100644 (file)
@@ -268,6 +268,7 @@ static void draw_edge(glCompPoint* posT,glCompPoint* posH, GLfloat length,int de
 void renderSelectedNodes(Agraph_t * g)
 {
     Agnode_t *v;
+    Agsym_t* data_attr = GN_labelattribute(g);
     xdot * x;
     glCompPoint pos;
     Agsym_t* l_color_attr = GG_nodelabelcolor(g);
@@ -302,17 +303,23 @@ void renderSelectedNodes(Agraph_t * g)
        if (defaultNodeShape == 0) 
            glVertex3f(pos.x,pos.y,pos.z+0.001);
        else if (defaultNodeShape == 1) 
-
            drawCircle(pos.x,pos.y,nodeSize,pos.z+0.001);
+    }
+    if(defaultNodeShape==0)
+       glEnd();
+    for (v = agfstnode(g); v; v = agnxtnode(g, v)) 
+    {
+       if(!ND_selected(v))
+           continue;
        if (ND_printLabel(v)==1)
        {
            glColor4f(c.R, c.G,c.B, c.A);
-           glprintfglut(view->glutfont,pos.x,pos.y,pos.z,agnameof(v));
+           if(!data_attr)
+               glprintfglut(view->glutfont,pos.x,pos.y,pos.z+0.002,agnameof(v));
+           else
+               glprintfglut(view->glutfont,pos.x,pos.y,pos.z+0.002,agxget(v,data_attr));
        }
-
     }
-    if(defaultNodeShape==0)
-       glEnd();
 }