Index: trunk/src/pcb-menu-default.lht =================================================================== --- trunk/src/pcb-menu-default.lht (revision 28775) +++ trunk/src/pcb-menu-default.lht (revision 28776) @@ -737,6 +737,14 @@ } } + ha:popup-obj-extobj-subcircuit { + li:submenu { + ha:Edit extobj properties { action=propedit(object) } + ha:Edit extobj layer bindings... { action=LayerBinding() } + ha:Edit extobjpadstack prototypes... { action=pstklib(object) } + } + } + ha:popup-obj-misc { li:submenu { ha:Operations on selections { Index: trunk/src_plugins/lib_hid_pcbui/act.c =================================================================== --- trunk/src_plugins/lib_hid_pcbui/act.c (revision 28775) +++ trunk/src_plugins/lib_hid_pcbui/act.c (revision 28776) @@ -367,10 +367,18 @@ if ((type == 0) || ((o != NULL) && (pcb_gobj_parent_subc(o->parent_type, &o->parent) == NULL))) { type = pcb_search_screen(x, y, PCB_OBJ_CLASS_REAL, &o1, &o2, &o3); - if (type == 0) - tn = "none"; - else - tn = pcb_obj_type_name(type); + switch(type) { + case 0: tn = "none"; break; + case PCB_OBJ_SUBC: + if (pcb_attribute_get(&((pcb_any_obj_t *)o2)->Attributes, "extobj") != 0) { + tn = "extobj-subcircuit"; + break; + } + /* fall through */ + default: + tn = pcb_obj_type_name(type); + break; + } sprintf(name, "/popups/%s-%s", a0, tn); }