Skip to content

Commit 6510c1f

Browse files
committed
draw: fix wrong edge indices in picking buffer
use the same edge rules as the rest of the code, fixes the wrong label being shown on selection
1 parent ca4021d commit 6510c1f

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

draw/draw.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,20 @@ drawedge(REdge *r, RNode *u, RNode *v, int urev, int vrev)
5151
static REdge *
5252
drawedges(REdge *r, RNode *rn)
5353
{
54-
ioff x, *e, *ee;
54+
ioff id, eid, aid, x, *e, *ee;
5555
Node *n, *ne;
5656
RNode *u, *v;
5757

58-
for(u=rn, n=nodes, ne=n+dylen(n); n<ne; n++, u++){
59-
for(e=edges+n->eoff, ee=e+n->nedges-n->nin; e<ee; e++, r++){
58+
for(id=eid=0, u=rn, n=nodes, ne=n+dylen(n); n<ne; n++, u++, id++){
59+
for(e=edges+n->eoff, ee=e+n->nedges; e<ee; e++){
6060
x = *e;
61+
aid = x >> 2;
62+
if(id > aid || id == aid && (x & 1) == 1)
63+
continue;
6164
v = rnodes + (x >> 2);
6265
drawedge(r, u, v, x & 1, x & 2);
66+
r++;
67+
eid++;
6368
}
6469
}
6570
return r;

0 commit comments

Comments
 (0)