diff --git a/delete.c b/delete.c index d203c96..10cc285 100644 --- a/delete.c +++ b/delete.c @@ -211,13 +211,16 @@ static void destroy_obj(struct obj *obj) free(obj->u.pad.name); break; case ot_line: - free_expr(obj->u.line.width); + if (obj->u.line.width) + free_expr(obj->u.line.width); break; case ot_rect: - free_expr(obj->u.rect.width); + if (obj->u.rect.width) + free_expr(obj->u.rect.width); break; case ot_arc: - free_expr(obj->u.arc.width); + if (obj->u.arc.width) + free_expr(obj->u.arc.width); break; case ot_meas: if (obj->u.meas.label) diff --git a/gui.html b/gui.html index 46de6ea..a4a8ed2 100644 --- a/gui.html +++ b/gui.html @@ -143,6 +143,22 @@ Tools are used to add new elements and to manipulate existing ones.
+ Clicking on an item selects it. If items overlap, the one with the + highest priority is selected. The priority is based on how difficult + it usually is to select an item, with frame references having a low + priority, pads, circles, arcs, rectangles, measurements, and lines + having increasingly higher priorities. There are a few special cases: +
To move points, select the item, then move the mouse pointer over the point to move. A red circle will appear under the mouse pointer. Then drag the point to its new location and release the mouse button.