static pointf *AF;
static int A_size;
boolean filled;
+ boolean pfilled; /* true if fill not handled by user shape */
char *color, *name;
int doMap = (obj->url || obj->explicit_tooltip);
pencolor(job, n); /* emit pen color */
}
+ pfilled = !ND_shape(n)->usershape || streq(ND_shape(n)->name, "custom");
/* if no boundary but filled, set boundary color to fill color */
- if ((peripheries == 0) && filled) {
+ if ((peripheries == 0) && filled && pfilled) {
char *color;
peripheries = 1;
color = findFill(n);
gvrender_set_pencolor(job, color);
}
if (ND_shape(n)->usershape) {
- int shapefilled = filled;
- if (filled) {
+ if (filled && pfilled) {
for (i = 0; i < sides; i++) {
P = vertices[i];
AF[i].x = P.x * xsize;
} else {
gvrender_polygon(job, AF, sides, filled);
}
- filled = FALSE;
}
for (i = 0; i < sides; i++) {
P = vertices[i];
name = ND_shape(n)->name;
if (streq(name, "custom"))
name = agget(n, "shapefile");
- gvrender_usershape(job, name, AF, sides, shapefilled, FALSE);
+ gvrender_usershape(job, name, AF, sides, filled, FALSE);
+ filled = FALSE; /* with user shapes, we've done the fill if needed */
}
for (j = 0; j < peripheries; j++) {