Index: trunk/src/brave.c =================================================================== --- trunk/src/brave.c (revision 12869) +++ trunk/src/brave.c (revision 12870) @@ -220,7 +220,7 @@ PCB_DAD_END(dlg); - PCB_DAD_NEW(dlg, "dlg_padstack_edit", "Edit padstack", dlg); + PCB_DAD_NEW(dlg, "dlg_padstack_edit", "Edit padstack", dlg, pcb_true); brave2dlg(dlg_hid_ctx); PCB_DAD_RUN(dlg); Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 12869) +++ trunk/src/hid.h (revision 12870) @@ -438,7 +438,7 @@ int (*attribute_dialog)(pcb_hid_attribute_t * attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, const char *descr_, void *caller_data); /* The same API in 3 stages: */ - void *(*attr_dlg_new)(pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, const char *descr_, void *caller_data); /* returns hid_ctx */ + void *(*attr_dlg_new)(pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, const char *descr_, void *caller_data, pcb_bool modal); /* returns hid_ctx */ int (*attr_dlg_run)(void *hid_ctx); void (*attr_dlg_free)(void *hid_ctx); /* results_ is avalibale after this call */ Index: trunk/src/hid_dad.h =================================================================== --- trunk/src/hid_dad.h (revision 12869) +++ trunk/src/hid_dad.h (revision 12870) @@ -57,11 +57,11 @@ free(table ## _result); \ } while(0) -#define PCB_DAD_NEW(table, title, descr, caller_data) \ +#define PCB_DAD_NEW(table, title, descr, caller_data, modal) \ do { \ if (table ## _result == NULL) \ PCB_DAD_ALLOC_RESULT(table); \ - table ## _hid_ctx = pcb_gui->attr_dlg_new(table, table ## _len, table ## _result, title, descr, caller_data); \ + table ## _hid_ctx = pcb_gui->attr_dlg_new(table, table ## _len, table ## _result, title, descr, caller_data, modal); \ } while(0) #define PCB_DAD_RUN(table) pcb_gui->attr_dlg_run(table ## _hid_ctx) Index: trunk/src_plugins/dialogs/dlg_flag_edit.c =================================================================== --- trunk/src_plugins/dialogs/dlg_flag_edit.c (revision 12869) +++ trunk/src_plugins/dialogs/dlg_flag_edit.c (revision 12870) @@ -119,7 +119,7 @@ ctx.attrs = dlg; - PCB_DAD_NEW(dlg, "flag_edit", "Edit flags", &ctx); + PCB_DAD_NEW(dlg, "flag_edit", "Edit flags", &ctx, pcb_true); val.func = fe_attr_chg; pcb_gui->attr_dlg_property(dlg_hid_ctx, PCB_HATP_GLOBAL_CALLBACK, &val); Index: trunk/src_plugins/dialogs/dlg_layer_binding.c =================================================================== --- trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 12869) +++ trunk/src_plugins/dialogs/dlg_layer_binding.c (revision 12870) @@ -287,7 +287,7 @@ ctx.attrs = dlg; - PCB_DAD_NEW(dlg, "layer_binding", "Layer bindings", &ctx); + PCB_DAD_NEW(dlg, "layer_binding", "Layer bindings", &ctx, pcb_true); val.func = lb_attr_chg; pcb_gui->attr_dlg_property(dlg_hid_ctx, PCB_HATP_GLOBAL_CALLBACK, &val); lb_data2dialog(dlg_hid_ctx, &ctx); Index: trunk/src_plugins/dialogs/dlg_padstack.c =================================================================== --- trunk/src_plugins/dialogs/dlg_padstack.c (revision 12869) +++ trunk/src_plugins/dialogs/dlg_padstack.c (revision 12870) @@ -284,7 +284,7 @@ PCB_DAD_END(dlg); PCB_DAD_END(dlg); - PCB_DAD_NEW(dlg, "dlg_padstack_edit_shape", "Edit padstack shape", pse); + PCB_DAD_NEW(dlg, "dlg_padstack_edit_shape", "Edit padstack shape", pse, pcb_true); pse->shape_chg = dlg; /* pse_ps2dlg(dlg_hid_ctx, pse);*/ @@ -432,7 +432,7 @@ PCB_DAD_END(dlg); PCB_DAD_END(dlg); - PCB_DAD_NEW(dlg, "dlg_padstack_edit", "Edit padstack", &pse); + PCB_DAD_NEW(dlg, "dlg_padstack_edit", "Edit padstack", &pse, pcb_true); pse.attrs = dlg; pse_tab_update(dlg_hid_ctx, &pse); pse_ps2dlg(dlg_hid_ctx, &pse); Index: trunk/src_plugins/hid_lesstif/dialogs.c =================================================================== --- trunk/src_plugins/hid_lesstif/dialogs.c (revision 12869) +++ trunk/src_plugins/hid_lesstif/dialogs.c (revision 12870) @@ -952,7 +952,7 @@ return -1; } -void *lesstif_attr_dlg_new(pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data) +void *lesstif_attr_dlg_new(pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data, pcb_bool modal) { Widget topform, main_tbl; int i; @@ -1028,7 +1028,7 @@ int rv; void *hid_ctx; - hid_ctx = lesstif_attr_dlg_new(attrs, n_attrs, results, title, descr, caller_data); + hid_ctx = lesstif_attr_dlg_new(attrs, n_attrs, results, title, descr, caller_data, pcb_true); rv = lesstif_attr_dlg_run(hid_ctx); lesstif_attr_dlg_free(hid_ctx); Index: trunk/src_plugins/lib_gtk_common/dlg_attribute.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 12869) +++ trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 12870) @@ -503,7 +503,7 @@ return -1; } -void *ghid_attr_dlg_new(GtkWidget *top_window, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data) +void *ghid_attr_dlg_new(GtkWidget *top_window, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data, pcb_bool modal) { GtkWidget *content_area; GtkWidget *main_vbox, *vbox; @@ -584,7 +584,7 @@ void *hid_ctx; int rc; - hid_ctx = ghid_attr_dlg_new(top_window, attrs, n_attrs, results, title, descr, caller_data); + hid_ctx = ghid_attr_dlg_new(top_window, attrs, n_attrs, results, title, descr, caller_data, pcb_true); rc = ghid_attr_dlg_run(hid_ctx); ghid_attr_dlg_free(hid_ctx); Index: trunk/src_plugins/lib_gtk_common/dlg_attribute.h =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_attribute.h (revision 12869) +++ trunk/src_plugins/lib_gtk_common/dlg_attribute.h (revision 12870) @@ -1,7 +1,7 @@ #include #include "hid.h" -void *ghid_attr_dlg_new(GtkWidget *top_window, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data); +void *ghid_attr_dlg_new(GtkWidget *top_window, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data, pcb_bool modal); int ghid_attr_dlg_run(void *hid_ctx); void ghid_attr_dlg_free(void *hid_ctx); void ghid_attr_dlg_property(void *hid_ctx, pcb_hat_property_t prop, const pcb_hid_attr_val_t *val); Index: trunk/src_plugins/lib_gtk_hid/glue_hid.c =================================================================== --- trunk/src_plugins/lib_gtk_hid/glue_hid.c (revision 12869) +++ trunk/src_plugins/lib_gtk_hid/glue_hid.c (revision 12870) @@ -379,9 +379,9 @@ return ghid_attribute_dialog(ghid_port.top_window, attrs, n_attrs, results, title, descr, caller_data); } -static void *ghid_attr_dlg_new_(pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data) +static void *ghid_attr_dlg_new_(pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, const char *descr, void *caller_data, pcb_bool modal) { - return ghid_attr_dlg_new(ghid_port.top_window, attrs, n_attrs, results, title, descr, caller_data); + return ghid_attr_dlg_new(ghid_port.top_window, attrs, n_attrs, results, title, descr, caller_data, modal); } static void ghid_show_item(void *item) Index: trunk/src_plugins/shape/shape_dialog.c =================================================================== --- trunk/src_plugins/shape/shape_dialog.c (revision 12869) +++ trunk/src_plugins/shape/shape_dialog.c (revision 12870) @@ -97,7 +97,7 @@ shp->but_gen = PCB_DAD_CURRENT(shp->dlg); PCB_DAD_END(shp->dlg); - PCB_DAD_NEW(shp->dlg, "dlg_shape", "Generate shapes", shp); + PCB_DAD_NEW(shp->dlg, "dlg_shape", "Generate shapes", shp, modal); /* shp_tab_update(shp->dlg_hid_ctx, &shp);*/ /* PCB_DAD_RUN(shp->dlg); PCB_DAD_FREE(shp->dlg);*/