Index: trunk/src/stub_draw.c =================================================================== --- trunk/src/stub_draw.c (revision 7530) +++ trunk/src/stub_draw.c (revision 7531) @@ -50,11 +50,7 @@ return 0; } -static void dummy_overlay(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ctx) -{ -} - /****** fab ******/ int dummy_DrawFab_overhang(void) @@ -82,7 +78,6 @@ void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc) = 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; -void (*pcb_stub_draw_csect_overlay)(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ctx) = dummy_overlay; /****** font selector GUI ******/ Index: trunk/src/stub_draw.h =================================================================== --- trunk/src/stub_draw.h (revision 7530) +++ trunk/src/stub_draw.h (revision 7531) @@ -40,7 +40,6 @@ /* csect */ extern void (*pcb_stub_draw_csect)(pcb_hid_gc_t gc); 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); -extern void (*pcb_stub_draw_csect_overlay)(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ctx); /* fontsel */ extern void (*pcb_stub_draw_fontsel)(pcb_hid_gc_t gc); Index: trunk/src_plugins/draw_csect/draw_csect.c =================================================================== --- trunk/src_plugins/draw_csect/draw_csect.c (revision 7530) +++ trunk/src_plugins/draw_csect/draw_csect.c (revision 7531) @@ -292,6 +292,48 @@ static pcb_hid_gc_t csect_gc; +static pcb_coord_t ox, oy, cx, cy; +static int drag_addgrp, drag_delgrp; +static pcb_layergrp_id_t gactive = -1; + +typedef enum { + MARK_GRP_FRAME, + MARK_GRP_MIDDLE, + MARK_GRP_TOP +} mark_grp_loc_t; + +static void mark_grp(pcb_coord_t y, unsigned int accept_mask, mark_grp_loc_t loc) +{ + pcb_coord_t y1, y2, x0 = -PCB_MM_TO_COORD(5); + pcb_layergrp_id_t g; + + g = get_group_coords(y, &y1, &y2); + + if ((g >= 0) && ((pcb_layergrp_flags(g) & accept_mask) == accept_mask)) { + gactive = g; + switch(loc) { + case MARK_GRP_FRAME: + dline_(x0, y1, PCB_MM_TO_COORD(200), y1, 0.1); + dline_(x0, y2, PCB_MM_TO_COORD(200), y2, 0.1); + break; + case MARK_GRP_MIDDLE: + dline_(x0, (y1+y2)/2, PCB_MM_TO_COORD(200), (y1+y2)/2, 0.1); + break; + case MARK_GRP_TOP: + dline_(x0, y1, PCB_MM_TO_COORD(200), y1, 0.1); + break; + } + } + else + gactive = -1; +} + +static void draw_hover_label(const char *str) +{ + int x0 = PCB_MM_TO_COORD(2.5); /* compensate for the mouse cursor (sort of random) */ + dtext_(cx+x0, cy, 250, 0, str, PCB_MM_TO_COORD(0.01)); +} + /* Draw the cross-section layer */ static void draw_csect(pcb_hid_gc_t gc) { @@ -392,105 +434,28 @@ x=20; x = 2 + create_button(gc, x, y, "Add copper group", &btn_addgrp); x = 2 + create_button(gc, x, y, "Del copper group", &btn_delgrp); -} -static pcb_coord_t ox, oy, lx, ly, cx, cy, gy1, gy2; -static int lvalid, gvalid, dgvalid, drag_addgrp, drag_delgrp; -static pcb_layergrp_id_t gactive = -1; - -typedef enum { - MARK_GRP_FRAME, - MARK_GRP_MIDDLE, - MARK_GRP_TOP -} mark_grp_loc_t; - -static void mark_grp(pcb_coord_t y, unsigned int accept_mask, mark_grp_loc_t loc) -{ - pcb_coord_t y1, y2, x0 = -PCB_MM_TO_COORD(5); - pcb_layergrp_id_t g; - - g = get_group_coords(y, &y1, &y2); - - if ((y1 == gy1) && (y2 == gy2) && gvalid) - return; - if (gvalid) { - switch(loc) { - case MARK_GRP_FRAME: - dline_(x0, gy1, PCB_MM_TO_COORD(200), gy1, 0.1); - dline_(x0, gy2, PCB_MM_TO_COORD(200), gy2, 0.1); - break; - case MARK_GRP_MIDDLE: - dline_(x0, (gy1+gy2)/2, PCB_MM_TO_COORD(200), (gy1+gy2)/2, 0.1); - break; - case MARK_GRP_TOP: - dline_(x0, gy1, PCB_MM_TO_COORD(200), gy1, 0.1); - } - gvalid = 0; - } - - if ((g >= 0) && ((pcb_layergrp_flags(g) & accept_mask) == accept_mask)) { - gy1 = y1; - gy2 = y2; - gactive = g; - gvalid = 1; - switch(loc) { - case MARK_GRP_FRAME: - dline_(x0, y1, PCB_MM_TO_COORD(200), y1, 0.1); - dline_(x0, y2, PCB_MM_TO_COORD(200), y2, 0.1); - break; - case MARK_GRP_MIDDLE: - dline_(x0, (y1+y2)/2, PCB_MM_TO_COORD(200), (y1+y2)/2, 0.1); - break; - case MARK_GRP_TOP: - dline_(x0, y1, PCB_MM_TO_COORD(200), y1, 0.1); - break; - } - } - else - gactive = -1; -} - -static void draw_hover_label(int *valid, const char *str) -{ - int x0 = PCB_MM_TO_COORD(2.5); /* compensate for the mouse cursor (sort of random) */ - if ((lx != cx) || (ly != cy)) { - if (*valid) - dtext_(lx+x0, ly, 250, 0, str, PCB_MM_TO_COORD(0.01)); - dtext_(cx+x0, cy, 250, 0, str, PCB_MM_TO_COORD(0.01)); - lx = cx; - ly = cy; - *valid = 1; - } -} - -static void draw_csect_overlay(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ctx) -{ if ((drag_lid >= 0) || (drag_addgrp) || (drag_delgrp) || (drag_gid >= 0)) { - pcb_hid_t *old_gui = pcb_gui; - pcb_gui = hid; - Output.fgGC = pcb_gui->make_gc(); + pcb_gui->set_color(gc, "#000000"); - pcb_gui->set_color(Output.fgGC, "#000000"); - pcb_gui->set_draw_xor(Output.fgGC, 1); - /* draw the actual operation */ if (drag_addgrp) { mark_grp(cy, PCB_LYT_SUBSTRATE, MARK_GRP_MIDDLE); - draw_hover_label(&lvalid, "INSERT"); + draw_hover_label("INSERT"); } if (drag_delgrp) { mark_grp(cy, PCB_LYT_COPPER | PCB_LYT_INTERN, MARK_GRP_FRAME); - draw_hover_label(&lvalid, "DEL"); + draw_hover_label("DEL"); } else if (drag_lid >= 0) { pcb_layer_t *l = &PCB->Data->Layer[drag_lid]; - draw_hover_label(&lvalid, l->Name); + draw_hover_label(l->Name); mark_grp(cy, PCB_LYT_COPPER, MARK_GRP_FRAME); } else if (drag_gid >= 0) { pcb_layer_group_t *g = &PCB->LayerGroups.grp[drag_gid]; const char *name = g->name == NULL ? "" : g->name; - draw_hover_label(&dgvalid, name); + draw_hover_label(name); mark_grp(cy, PCB_LYT_COPPER | PCB_LYT_INTERN, MARK_GRP_TOP); if (gactive < 0) mark_grp(cy, PCB_LYT_COPPER | PCB_LYT_BOTTOM, MARK_GRP_TOP); @@ -497,9 +462,6 @@ if (gactive < 0) mark_grp(cy, PCB_LYT_SUBSTRATE, MARK_GRP_TOP); } - - pcb_gui->destroy_gc(Output.fgGC); - pcb_gui = old_gui; } } @@ -558,7 +520,6 @@ if (drag_lid >= 0) { ox = x; oy = y; - lvalid = 0; res = 1; break; } @@ -568,7 +529,6 @@ pcb_layergrp_id_t gid; gid = get_group_coords(y, &tmp, &tmp); if ((gid >= 0) && (pcb_layergrp_flags(gid) & PCB_LYT_COPPER) && (pcb_layergrp_flags(gid) & PCB_LYT_INTERN)) { - gvalid = 0; drag_gid = gid; /* temporary workaround for the restricted setup */ if (pcb_layergrp_flags(gid - 1) & PCB_LYT_SUBSTRATE) @@ -595,7 +555,6 @@ drag_addgrp = 0; gactive = -1; res = 1; - lvalid = gvalid = 0; } else if (drag_delgrp) { if (gactive >= 0) { @@ -608,7 +567,6 @@ drag_delgrp = 0; gactive = -1; res = 1; - lvalid = gvalid = 0; } else if (drag_lid >= 0) { if (gactive >= 0) { @@ -622,7 +580,6 @@ pcb_message(PCB_MSG_ERROR, "Can not move copper layer onto non-copper layer group\n"); res = 1; drag_lid = -1; - lvalid = gvalid = 0; gactive = -1; } else if (drag_gid > 0) { @@ -630,7 +587,6 @@ res = 1; drag_gid = -1; drag_gid_subst = -1; - lvalid = gvalid = 0; } break; case PCB_HID_MOUSE_MOTION: @@ -706,7 +662,6 @@ pcb_stub_draw_csect = draw_csect; pcb_stub_draw_csect_mouse_ev = mouse_csect; - pcb_stub_draw_csect_overlay = draw_csect_overlay; return hid_draw_csect_uninit; } Index: trunk/src_plugins/hid_gtk/glue_common.c =================================================================== --- trunk/src_plugins/hid_gtk/glue_common.c (revision 7530) +++ trunk/src_plugins/hid_gtk/glue_common.c (revision 7531) @@ -228,7 +228,6 @@ ghidgui->common.drawing_area_expose = ghid_gl_drawing_area_expose_cb; ghidgui->common.preview_expose = ghid_gl_preview_expose; ghidgui->common.invalidate_all = ghid_gl_invalidate_all; - ghidgui->common.preview_draw = ghid_gl_preview_draw; ghidgui->common.set_special_colors = ghid_gl_set_special_colors; ghidgui->common.init_renderer = ghid_gl_init_renderer; ghidgui->common.screen_update = ghid_gl_screen_update; @@ -242,7 +241,6 @@ ghidgui->common.drawing_area_expose = ghid_gdk_drawing_area_expose_cb; ghidgui->common.preview_expose = ghid_gdk_preview_expose; ghidgui->common.invalidate_all = ghid_gdk_invalidate_all; - ghidgui->common.preview_draw = ghid_gdk_preview_draw; ghidgui->common.set_special_colors = ghid_gdk_set_special_colors; ghidgui->common.init_renderer = ghid_gdk_init_renderer; ghidgui->common.screen_update = ghid_gdk_screen_update; Index: trunk/src_plugins/hid_gtk/gtkhid-gdk.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-gdk.c (revision 7530) +++ trunk/src_plugins/hid_gtk/gtkhid-gdk.c (revision 7531) @@ -1211,52 +1211,6 @@ return FALSE; } -gboolean ghid_gdk_preview_draw(GtkWidget * widget, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx) -{ - GdkWindow *window = gtk_widget_get_window(widget); - GdkDrawable *save_drawable; - GtkAllocation allocation; - pcb_gtk_view_t save_view; - int save_width, save_height; - double xz, yz, vw, vh; - - vw = ctx->view.X2 - ctx->view.X1; - vh = ctx->view.Y2 - ctx->view.Y1; - - /* Setup drawable and zoom factor for drawing routines - */ - save_drawable = gport->drawable; - save_view = gport->view; - save_width = gport->view.canvas_width; - save_height = gport->view.canvas_height; - - gtk_widget_get_allocation(widget, &allocation); - xz = vw / (double)allocation.width; - yz = vh / (double)allocation.height; - if (xz > yz) - gport->view.coord_per_px = xz; - else - gport->view.coord_per_px = yz; - - gport->drawable = window; - gport->view.canvas_width = allocation.width; - gport->view.canvas_height = allocation.height; - gport->view.width = allocation.width * gport->view.coord_per_px; - gport->view.height = allocation.height * gport->view.coord_per_px; - gport->view.x0 = (vw - gport->view.width) / 2 + ctx->view.X1; - gport->view.y0 = (vh - gport->view.height) / 2 + ctx->view.Y1; - - /* call the drawing routine */ - expcall(&ghid_hid, ctx); - - gport->drawable = save_drawable; - gport->view = save_view; - gport->view.canvas_width = save_width; - gport->view.canvas_height = save_height; - - return FALSE; -} - GdkPixmap *ghid_gdk_render_pixmap(int cx, int cy, double zoom, int width, int height, int depth) { GdkPixmap *pixmap; Index: trunk/src_plugins/hid_gtk/gtkhid-gl.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-gl.c (revision 7530) +++ trunk/src_plugins/hid_gtk/gtkhid-gl.c (revision 7531) @@ -924,8 +924,10 @@ gboolean ghid_gl_preview_expose(GtkWidget * widget, GdkEventExpose * ev, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx) { + GdkWindow *window = gtk_widget_get_window(widget); GdkGLContext *pGlContext = gtk_widget_get_gl_context(widget); GdkGLDrawable *pGlDrawable = gtk_widget_get_gl_drawable(widget); + GdkDrawable *save_drawable; GtkAllocation allocation; pcb_gtk_view_t save_view; int save_width, save_height; @@ -934,6 +936,7 @@ vw = ctx->view.X2 - ctx->view.X1; vh = ctx->view.Y2 - ctx->view.Y1; + save_drawable = gport->drawable; save_view = gport->view; save_width = gport->view.canvas_width; save_height = gport->view.canvas_height; @@ -941,8 +944,8 @@ /* Setup zoom factor for drawing routines */ gtk_widget_get_allocation(widget, &allocation); - save_width = gport->view.canvas_width; - save_height = gport->view.canvas_height; + xz = vw / (double) allocation.width; + yz = vh / (double) allocation.height; if (xz > yz) gport->view.coord_per_px = xz; @@ -949,6 +952,7 @@ else gport->view.coord_per_px = yz; + gport->drawable = window; gport->view.canvas_width = allocation.width; gport->view.canvas_height = allocation.height; gport->view.width = allocation.width * gport->view.coord_per_px; @@ -968,7 +972,10 @@ glViewport(0, 0, allocation.width, allocation.height); glEnable(GL_SCISSOR_TEST); - glScissor(ev->area.x, allocation.height - ev->area.height - ev->area.y, ev->area.width, ev->area.height); + if (ev) + glScissor(ev->area.x, allocation.height - ev->area.height - ev->area.y, ev->area.width, ev->area.height); + else + glScissor(0, 0, allocation.width, allocation.height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -977,6 +984,7 @@ glLoadIdentity(); glTranslatef(0.0f, 0.0f, -Z_NEAR); + glEnable(GL_STENCIL_TEST); glClearColor(gport->bg_color.red / 65535., gport->bg_color.green / 65535., gport->bg_color.blue / 65535., 1.); glStencilMask(~0); glClearStencil(0); @@ -983,6 +991,9 @@ glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); hidgl_reset_stencil_usage(); + glDisable(GL_STENCIL_TEST); + glStencilMask(0); + glStencilFunc(GL_ALWAYS, 0, 0); /* call the drawing routine */ hidgl_init_triangle_array(&buffer); @@ -1007,6 +1018,7 @@ gport->render_priv->in_context = pcb_false; gdk_gl_drawable_gl_end(pGlDrawable); + gport->drawable = save_drawable; gport->view = save_view; gport->view.canvas_width = save_width; gport->view.canvas_height = save_height; @@ -1014,100 +1026,6 @@ return FALSE; } -gboolean ghid_gl_preview_draw(GtkWidget * widget, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx) -{ - GdkGLContext *pGlContext = gtk_widget_get_gl_context(widget); - GdkGLDrawable *pGlDrawable = gtk_widget_get_gl_drawable(widget); - GtkAllocation allocation; - pcb_gtk_view_t save_view; - int save_width, save_height; - double xz, yz, vw, vh; - - vw = ctx->view.X2 - ctx->view.X1; - vh = ctx->view.Y2 - ctx->view.Y1; - - save_view = gport->view; - save_width = gport->view.canvas_width; - save_height = gport->view.canvas_height; - - /* Setup zoom factor for drawing routines */ - - gtk_widget_get_allocation(widget, &allocation); - save_width = gport->view.canvas_width; - save_height = gport->view.canvas_height; - - if (xz > yz) - gport->view.coord_per_px = xz; - else - gport->view.coord_per_px = yz; - - gport->view.canvas_width = allocation.width; - gport->view.canvas_height = allocation.height; - gport->view.width = allocation.width * gport->view.coord_per_px; - gport->view.height = allocation.height * gport->view.coord_per_px; - gport->view.x0 = (vw - gport->view.width) / 2 + ctx->view.X1; - gport->view.y0 = (vh - gport->view.height) / 2 + ctx->view.Y1; - - /* make GL-context "current" */ - if (!gdk_gl_drawable_gl_begin(pGlDrawable, pGlContext)) { - return FALSE; - } - gport->render_priv->in_context = pcb_true; - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glViewport(0, 0, allocation.width, allocation.height); - - glEnable(GL_SCISSOR_TEST); -#warning TODO scissor -// glScissor(ev->area.x, allocation.height - ev->area.height - ev->area.y, ev->area.width, ev->area.height); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glOrtho(0, allocation.width, allocation.height, 0, 0, 100); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0f, 0.0f, -Z_NEAR); - - glClearColor(gport->bg_color.red / 65535., gport->bg_color.green / 65535., gport->bg_color.blue / 65535., 1.); - glStencilMask(~0); - glClearStencil(0); - glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); - - hidgl_reset_stencil_usage(); -#warning TODO: remove clearing - /* call the drawing routine */ - hidgl_init_triangle_array(&buffer); - ghid_gl_invalidate_current_gc(); - glPushMatrix(); - glScalef((conf_core.editor.view.flip_x ? -1. : 1.) / gport->view.coord_per_px, - (conf_core.editor.view.flip_y ? -1. : 1.) / gport->view.coord_per_px, 1); - glTranslatef(conf_core.editor.view.flip_x ? gport->view.x0 - PCB->MaxWidth : - -gport->view.x0, conf_core.editor.view.flip_y ? gport->view.y0 - PCB->MaxHeight : -gport->view.y0, 0); - - expcall(&ghid_hid, ctx); - - hidgl_flush_triangles(&buffer); - glPopMatrix(); - - if (gdk_gl_drawable_is_double_buffered(pGlDrawable)) - gdk_gl_drawable_swap_buffers(pGlDrawable); - else - glFlush(); - - /* end drawing to current GL-context */ - gport->render_priv->in_context = pcb_false; - gdk_gl_drawable_gl_end(pGlDrawable); - - gport->view = save_view; - gport->view.canvas_width = save_width; - gport->view.canvas_height = save_height; - - return FALSE; -} - - GdkPixmap *ghid_gl_render_pixmap(int cx, int cy, double zoom, int width, int height, int depth) { GdkGLConfig *glconfig; Index: trunk/src_plugins/hid_gtk/render.h =================================================================== --- trunk/src_plugins/hid_gtk/render.h (revision 7530) +++ trunk/src_plugins/hid_gtk/render.h (revision 7531) @@ -4,7 +4,6 @@ void ghid_cancel_lead_user(void); -gboolean ghid_gdk_preview_draw(GtkWidget *widget, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx); void ghid_gdk_set_special_colors(conf_native_t *cfg); gboolean ghid_gdk_drawing_area_expose_cb(GtkWidget *widget, GdkEventExpose *ev, void *port); @@ -12,7 +11,6 @@ int ghid_gdk_set_layer_group(pcb_layergrp_id_t group, pcb_layer_id_t layer, unsigned int flags, int is_empty); -gboolean ghid_gl_preview_draw(GtkWidget *widget, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx); void ghid_gl_set_special_colors(conf_native_t *cfg); gboolean ghid_gl_drawing_area_expose_cb(GtkWidget *widget, GdkEventExpose *ev, void *port); Index: trunk/src_plugins/lib_gtk_common/glue.h =================================================================== --- trunk/src_plugins/lib_gtk_common/glue.h (revision 7530) +++ trunk/src_plugins/lib_gtk_common/glue.h (revision 7531) @@ -15,7 +15,6 @@ /* rendering */ GdkPixmap *(*render_pixmap)(int cx, int cy, double zoom, int width, int height, int depth); - gboolean (*preview_draw)(GtkWidget *widget, pcb_hid_expose_t expcall, const pcb_hid_expose_ctx_t *ctx); void (*drawing_realize)(GtkWidget *w, void *gport); gboolean (*drawing_area_expose)(GtkWidget *w, GdkEventExpose *ev, void *gport); void (*drawing_area_configure_hook)(void *); Index: trunk/src_plugins/lib_gtk_common/wt_preview.c =================================================================== --- trunk/src_plugins/lib_gtk_common/wt_preview.c (revision 7530) +++ trunk/src_plugins/lib_gtk_common/wt_preview.c (revision 7531) @@ -340,7 +340,7 @@ if (preview->mouse_cb != NULL) { /* pcb_printf("bp %mm %mm\n", cx, cy); */ if (preview->mouse_cb(w, PCB_HID_MOUSE_PRESS, cx, cy)) - ghid_preview_expose(w, NULL); + gtk_widget_queue_draw(w); } break; case PCB_MB_RIGHT: @@ -363,7 +363,7 @@ preview->view.x0 = cx - (preview->view.canvas_width / 2) * preview->view.coord_per_px; preview->view.y0 = cy - (preview->view.canvas_height / 2) * preview->view.coord_per_px; update_expose_data(preview); - ghid_preview_expose(w, NULL); + gtk_widget_queue_draw(w); return FALSE; } @@ -400,7 +400,7 @@ get_ptr(preview, &cx, &cy, &wx, &wy); /* pcb_printf("br %mm %mm\n", cx, cy); */ if (preview->mouse_cb(w, PCB_HID_MOUSE_RELEASE, cx, cy)) - ghid_preview_expose(w, NULL); + gtk_widget_queue_draw(w); } break; default:; @@ -419,15 +419,13 @@ preview->view.x0 = preview->grabx - wx * preview->view.coord_per_px; preview->view.y0 = preview->graby - wy * preview->view.coord_per_px; update_expose_data(preview); - ghid_preview_expose(w, NULL); + gtk_widget_queue_draw(w); return FALSE; } if (preview->mouse_cb != NULL) { -/* pcb_printf("mo %mm %mm\n", cx, cy); */ preview->mouse_cb(w, PCB_HID_MOUSE_MOTION, cx, cy); - if (preview->overlay_draw_cb != NULL) - preview->com->preview_draw(w, preview->overlay_draw_cb, &preview->expose_data); + gtk_widget_queue_draw(w); } return FALSE; } Index: trunk/src_plugins/lib_gtk_config/gui-config.c =================================================================== --- trunk/src_plugins/lib_gtk_config/gui-config.c (revision 7530) +++ trunk/src_plugins/lib_gtk_config/gui-config.c (revision 7531) @@ -1401,7 +1401,6 @@ gtk_box_pack_start(GTK_BOX(vbox), prv, TRUE, TRUE, 0); p = (pcb_gtk_preview_t *) prv; p->mouse_cb = pcb_stub_draw_csect_mouse_ev; - p->overlay_draw_cb = pcb_stub_draw_csect_overlay; } /* -- Logical layers tab */