Index: trunk/src/stub_draw.c =================================================================== --- trunk/src/stub_draw.c (revision 7110) +++ trunk/src/stub_draw.c (revision 7111) @@ -91,8 +91,10 @@ dummy_draw_text(gc, "Can't render the font selector: the draw_fontsel plugin is not compiled and/or not loaded"); } -static *dummy_fontsel_text; +static pcb_text_t *dummy_fontsel_text = NULL; +static pcb_layer_t *dummy_fontsel_layer = NULL; void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc) = dummy_draw_fontsel; pcb_bool (*pcb_stub_draw_fontsel_mouse_ev)(void *widget, pcb_hid_mouse_ev_t kind, pcb_coord_t x, pcb_coord_t y) = dummy_mouse; pcb_text_t **pcb_stub_draw_fontsel_text_obj = &dummy_fontsel_text; +pcb_layer_t **pcb_stub_draw_fontsel_layer_obj = &dummy_fontsel_layer; Index: trunk/src/stub_draw.h =================================================================== --- trunk/src/stub_draw.h (revision 7110) +++ trunk/src/stub_draw.h (revision 7111) @@ -46,5 +46,6 @@ extern void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc); extern pcb_bool (*pcb_stub_draw_fontsel_mouse_ev)(void *widget, pcb_hid_mouse_ev_t kind, pcb_coord_t x, pcb_coord_t y); extern pcb_text_t **pcb_stub_draw_fontsel_text_obj; +extern pcb_layer_t **pcb_stub_draw_fontsel_layer_obj; #endif Index: trunk/src_plugins/draw_fontsel/draw_fontsel.c =================================================================== --- trunk/src_plugins/draw_fontsel/draw_fontsel.c (revision 7110) +++ trunk/src_plugins/draw_fontsel/draw_fontsel.c (revision 7111) @@ -102,6 +102,7 @@ int font_del_y1, font_del_y2; pcb_text_t *fontsel_txt = NULL; +pcb_layer_t *fontsel_layer = NULL; static void pcb_draw_font(pcb_hid_gc_t gc, pcb_font_t *f, int x, int *y) { @@ -192,6 +193,7 @@ conf_set(CFR_DESIGN, "design/text_font_id", 0, sval, POL_OVERWRITE); } else { +#warning TODO: this should be a change function (and change action) in core fontsel_txt->fid = fid; pcb_gui->invalidate_all(); } @@ -223,6 +225,7 @@ pcb_stub_draw_fontsel = pcb_draw_fontsel; pcb_stub_draw_fontsel_mouse_ev = pcb_mouse_fontsel; pcb_stub_draw_fontsel_text_obj = &fontsel_txt; + pcb_stub_draw_fontsel_layer_obj = &fontsel_layer; return hid_draw_fontsel_uninit; } Index: trunk/src_plugins/hid_gtk/gui-top-window.c =================================================================== --- trunk/src_plugins/hid_gtk/gui-top-window.c (revision 7110) +++ trunk/src_plugins/hid_gtk/gui-top-window.c (revision 7111) @@ -1739,7 +1739,7 @@ pcb_gui->get_coords(_("Select an Object"), &x, &y); if ((type = pcb_search_screen(x, y, PCB_CHANGENAME_TYPES, &ptr1, &ptr2, &ptr3)) != PCB_TYPE_NONE) { /* pcb_undo_save_serial();*/ - pcb_gtk_dlg_fontsel(gport, gport->top_window, ptr2, 1); + pcb_gtk_dlg_fontsel(gport, gport->top_window, ptr1, ptr2, 1); } } else @@ -1746,7 +1746,7 @@ PCB_ACT_FAIL(fontsel); } else - pcb_gtk_dlg_fontsel(gport, gport->top_window, NULL, 0); + pcb_gtk_dlg_fontsel(gport, gport->top_window, NULL, NULL, 0); return 0; } Index: trunk/src_plugins/lib_gtk_common/dlg_fontsel.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_fontsel.c (revision 7110) +++ trunk/src_plugins/lib_gtk_common/dlg_fontsel.c (revision 7111) @@ -36,6 +36,7 @@ typedef struct { GtkDialog *dialog; pcb_text_t *txt, *old_txt; + pcb_layer_t *layer, *old_layer; } pcb_gtk_dlg_fontsel_t; static int dlg_fontsel_global_latch = 0; @@ -47,11 +48,12 @@ if (ctx->txt == NULL) dlg_fontsel_global_latch = 0; *pcb_stub_draw_fontsel_text_obj = ctx->old_txt; + *pcb_stub_draw_fontsel_layer_obj = ctx->old_layer; free(ctx); } -void pcb_gtk_dlg_fontsel(void *gport, GtkWidget *top_window, pcb_text_t *txt, int modal) +void pcb_gtk_dlg_fontsel(void *gport, GtkWidget *top_window, pcb_layer_t *txtly, pcb_text_t *txt, int modal) { GtkWidget *w; GtkDialog *dialog; @@ -77,7 +79,9 @@ ctx->txt = txt; ctx->old_txt = *pcb_stub_draw_fontsel_text_obj; + ctx->old_layer = *pcb_stub_draw_fontsel_layer_obj; *pcb_stub_draw_fontsel_text_obj = txt; + *pcb_stub_draw_fontsel_layer_obj = txtly; w = gtk_dialog_new_with_buttons("PCB - font selector", GTK_WINDOW(top_window), Index: trunk/src_plugins/lib_gtk_common/dlg_fontsel.h =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_fontsel.h (revision 7110) +++ trunk/src_plugins/lib_gtk_common/dlg_fontsel.h (revision 7111) @@ -2,7 +2,7 @@ #include "global_typedefs.h" #include "hid.h" -void pcb_gtk_dlg_fontsel(void *gport, GtkWidget *top_window, pcb_text_t *txt, int modal); +void pcb_gtk_dlg_fontsel(void *gport, GtkWidget *top_window, pcb_layer_t *txtly, pcb_text_t *txt, int modal); /* temporary back reference to hid_gtk: */ extern void ghid_init_drawing_widget(GtkWidget *widget, void *gport);