Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 9172) +++ trunk/src/draw.c (revision 9173) @@ -169,9 +169,12 @@ /* This is the reverse of the order in which we draw them. */ pcb_layergrp_id_t drawn_groups[PCB_MAX_LAYERGRP]; pcb_layer_t *first; - + pcb_hid_expose_ctx_t hid_exp; pcb_bool paste_empty; + hid_exp.view = *drawn_area; + hid_exp.force = 0; + PCB->Data->SILKLAYER.meta.real.color = conf_core.appearance.color.element; PCB->Data->BACKSILKLAYER.meta.real.color = conf_core.appearance.color.invisible_objects; @@ -285,12 +288,12 @@ } if (pcb_layer_gui_set_vlayer(PCB_VLY_FAB, 0)) { - pcb_stub_draw_fab(Output.fgGC); + pcb_stub_draw_fab(Output.fgGC, &hid_exp); pcb_gui->end_layer(); } if (pcb_layer_gui_set_vlayer(PCB_VLY_CSECT, 0)) { - pcb_stub_draw_csect(Output.fgGC); + pcb_stub_draw_csect(Output.fgGC, &hid_exp); pcb_gui->end_layer(); } @@ -571,7 +574,7 @@ if (lflg & PCB_LYT_CSECT) { if ((pcb_layer_gui_set_vlayer(PCB_VLY_CSECT, 0)) || (e->force)) { - pcb_stub_draw_csect(Output.fgGC); + pcb_stub_draw_csect(Output.fgGC, e); pcb_gui->end_layer(); } } Index: trunk/src/stub_draw.c =================================================================== --- trunk/src/stub_draw.c (revision 9172) +++ trunk/src/stub_draw.c (revision 9173) @@ -64,24 +64,24 @@ } int (*pcb_stub_draw_fab_overhang)(void) = dummy_DrawFab_overhang; -void (*pcb_stub_draw_fab)(pcb_hid_gc_t gc) = dummy_DrawFab; +void (*pcb_stub_draw_fab)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e) = dummy_DrawFab; /****** csect - cross section of the board ******/ -static void dummy_draw_csect(pcb_hid_gc_t gc) +static void dummy_draw_csect(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e) { dummy_draw_text(gc, "Can't render the fab layer: the draw_csect plugin is not compiled and/or not loaded"); } -void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc) = dummy_draw_csect; +void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e) = dummy_draw_csect; pcb_bool (*pcb_stub_draw_csect_mouse_ev)(void *widget, pcb_hid_mouse_ev_t kind, pcb_coord_t x, pcb_coord_t y) = dummy_mouse; /****** font selector GUI ******/ -static void dummy_draw_fontsel(pcb_hid_gc_t gc) +static void dummy_draw_fontsel(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e) { dummy_draw_text(gc, "Can't render the font selector: the draw_fontsel plugin is not compiled and/or not loaded"); } @@ -90,7 +90,7 @@ static pcb_layer_t *dummy_fontsel_layer = NULL; static int dummy_fontsel_type = 0; -void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc) = dummy_draw_fontsel; +void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e) = 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 9172) +++ trunk/src/stub_draw.h (revision 9173) @@ -35,14 +35,14 @@ /* fab */ extern int (*pcb_stub_draw_fab_overhang)(void); -extern void (*pcb_stub_draw_fab)(pcb_hid_gc_t gc); +extern void (*pcb_stub_draw_fab)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e); /* csect */ -extern void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc); +extern void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e); extern pcb_bool (*pcb_stub_draw_csect_mouse_ev)(void *widget, pcb_hid_mouse_ev_t kind, pcb_coord_t x, pcb_coord_t y); /* fontsel */ -extern void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc); +extern void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc, const pcb_hid_expose_ctx_t *e); 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;