Index: propdlg.c =================================================================== --- propdlg.c (revision 26074) +++ propdlg.c (revision 26075) @@ -207,9 +207,20 @@ static void prop_valedit_update(propdlg_t *ctx, pcb_props_t *p, pcb_propval_t *pv) { pcb_hid_attr_val_t hv; - memset(&hv, 0, sizeof(hv)); + /* do not update the value if widget is numeric and the user wants a relative value */ switch(p->type) { + case PCB_PROPT_COORD: + case PCB_PROPT_ANGLE: + case PCB_PROPT_INT: + case PCB_PROPT_BOOL: + if (!ctx->dlg[ctx->wabs[p->type]].default_val.int_value) + return; + } + + + memset(&hv, 0, sizeof(hv)); + switch(p->type) { case PCB_PROPT_STRING: hv.str_value = pcb_strdup(pv->string == NULL ? "" : pv->string); break; case PCB_PROPT_COORD: hv.coord_value = pv->coord; break; case PCB_PROPT_ANGLE: hv.real_value = pv->angle; break;