Index: trunk/src/find_drc.c =================================================================== --- trunk/src/find_drc.c (revision 21223) +++ trunk/src/find_drc.c (revision 21224) @@ -142,7 +142,7 @@ idp = pcb_idpath_list_first(&v->objs[0]); obj = pcb_idpath2obj(PCB->Data, idp); if (obj != NULL) { - v->have_coord = 1; + v->have_bbox = 1; pcb_obj_center(obj, &v->x, &v->y); memcpy(&v->bbox, &obj->BoundingBox, sizeof(obj->BoundingBox)); pcb_box_enlarge(&v->bbox, 0.25, 0.25); @@ -156,13 +156,13 @@ for(idp = pcb_idpath_list_first(&v->objs[g]); idp != NULL; idp = pcb_idpath_list_next(idp)) { obj = pcb_idpath2obj(PCB->Data, idp); if (obj != NULL) { - v->have_coord = 1; + v->have_bbox = 1; pcb_box_bump_box(&b, &obj->BoundingBox); } } } - if (v->have_coord) { + if (v->have_bbox) { v->x = (b.X1 + b.X2)/2; v->y = (b.Y1 + b.Y2)/2; memcpy(&v->bbox, &b, sizeof(b)); Index: trunk/src/view.c =================================================================== --- trunk/src/view.c (revision 21223) +++ trunk/src/view.c (revision 21224) @@ -76,7 +76,7 @@ void pcb_view_goto(pcb_view_t *item) { - if (item->have_coord) { + if (item->have_bbox) { fgw_arg_t res, argv[5]; argv[1].type = FGW_COORD; fgw_coord(&argv[1]) = item->bbox.X1; Index: trunk/src/view.h =================================================================== --- trunk/src/view.h (revision 21223) +++ trunk/src/view.h (revision 21224) @@ -40,13 +40,16 @@ typedef struct pcb_view_s pcb_view_t; struct pcb_view_s { - unsigned long int uid; /* ID unique for each violation within the drc subsystem (for GUI identification of violations) */ + unsigned long int uid; /* ID unique for each view (for GUI identification) - 0 means invalid */ char *type; char *title; char *explanation; - unsigned have_coord:1; + /* these indicate whether some of the following fields are valid */ + unsigned have_bbox:1; + unsigned have_xy:1; + pcb_box_t bbox; /* bounding box of all error objects (in both groups) */ pcb_coord_t x, y; /* optional: a coord to mark on the preview */