Index: trunk/src/data_parent.h =================================================================== --- trunk/src/data_parent.h (revision 18339) +++ trunk/src/data_parent.h (revision 18340) @@ -35,7 +35,8 @@ PCB_PARENT_LAYER, /* object is on a layer */ PCB_PARENT_SUBC, /* object is part of a subcircuit */ PCB_PARENT_DATA, /* global objects like via */ - PCB_PARENT_BOARD /* directly under a board (typical for pcb_data_t of a board) */ + PCB_PARENT_BOARD, /* directly under a board (typical for pcb_data_t of a board) */ + PCB_PARENT_UI /* parent of UI layers */ } pcb_parenttype_t; /* class is e.g. PCB_OBJ_CLASS_OBJ */ Index: trunk/src/layer_ui.c =================================================================== --- trunk/src/layer_ui.c (revision 18339) +++ trunk/src/layer_ui.c (revision 18340) @@ -68,6 +68,8 @@ l->meta.real.color = pcb_strdup(color); l->name = pcb_strdup(name); l->meta.real.vis = 1; + l->parent_type = PCB_PARENT_UI; + l->parent.any = NULL; pcb_event(PCB_EVENT_LAYERS_CHANGED, NULL); return l; } Index: trunk/src/obj_subc_parent.h =================================================================== --- trunk/src/obj_subc_parent.h (revision 18339) +++ trunk/src/obj_subc_parent.h (revision 18340) @@ -89,6 +89,7 @@ switch(obj->parent_type) { case PCB_PARENT_INVALID: return pcb_false; case PCB_PARENT_BOARD: return pcb_false; + case PCB_PARENT_UI: return pcb_false; /* shouldn't happen */ case PCB_PARENT_LAYER: if (obj->parent.layer->parent.data == data) return pcb_true; break; case PCB_PARENT_SUBC: if (obj->parent.subc->data == data) return pcb_true; break; case PCB_PARENT_DATA: if (obj->parent.data == data) return pcb_true; break;