Index: trunk/src_plugins/hid_gtk/gtkhid-gdk.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-gdk.c (revision 6674) +++ trunk/src_plugins/hid_gtk/gtkhid-gdk.c (revision 6675) @@ -792,6 +792,9 @@ ctx.view.X2 = MAX(0, MIN(PCB->MaxWidth, ctx.view.X2)); ctx.view.Y1 = MAX(0, MIN(PCB->MaxHeight, ctx.view.Y1)); ctx.view.Y2 = MAX(0, MIN(PCB->MaxHeight, ctx.view.Y2)); + + ctx.force = 0; + ctx.content.elem = NULL; eleft = Vx(0); eright = Vx(PCB->MaxWidth); @@ -829,7 +832,7 @@ ghid_draw_bg_image(); - pcb_hid_expose_all(&ghid_hid, &ctx.view); + pcb_hid_expose_all(&ghid_hid, &ctx); ghid_draw_grid(); /* In some cases we are called with the crosshair still off */ @@ -1206,7 +1209,6 @@ pcb_gtk_view_t save_view; int save_width, save_height; double xz, yz, vw, vh; - render_priv *priv = gport->render_priv; vw = ctx->view.X2 - ctx->view.X1; vh = ctx->view.Y2 - ctx->view.Y1; @@ -1251,7 +1253,7 @@ GdkDrawable *save_drawable; pcb_gtk_view_t save_view; int save_width, save_height; - pcb_box_t region; + pcb_hid_expose_ctx_t ectx; render_priv *priv = gport->render_priv; save_drawable = gport->drawable; @@ -1279,18 +1281,21 @@ gdk_draw_rectangle(pixmap, priv->bg_gc, TRUE, 0, 0, width, height); /* call the drawing routine */ - region.X1 = MIN(Px(0), Px(gport->view.canvas_width + 1)); - region.Y1 = MIN(Py(0), Py(gport->view.canvas_height + 1)); - region.X2 = MAX(Px(0), Px(gport->view.canvas_width + 1)); - region.Y2 = MAX(Py(0), Py(gport->view.canvas_height + 1)); + ectx.view.X1 = MIN(Px(0), Px(gport->view.canvas_width + 1)); + ectx.view.Y1 = MIN(Py(0), Py(gport->view.canvas_height + 1)); + ectx.view.X2 = MAX(Px(0), Px(gport->view.canvas_width + 1)); + ectx.view.Y2 = MAX(Py(0), Py(gport->view.canvas_height + 1)); - region.X1 = MAX(0, MIN(PCB->MaxWidth, region.X1)); - region.X2 = MAX(0, MIN(PCB->MaxWidth, region.X2)); - region.Y1 = MAX(0, MIN(PCB->MaxHeight, region.Y1)); - region.Y2 = MAX(0, MIN(PCB->MaxHeight, region.Y2)); + ectx.view.X1 = MAX(0, MIN(PCB->MaxWidth, ectx.view.X1)); + ectx.view.X2 = MAX(0, MIN(PCB->MaxWidth, ectx.view.X2)); + ectx.view.Y1 = MAX(0, MIN(PCB->MaxHeight, ectx.view.Y1)); + ectx.view.Y2 = MAX(0, MIN(PCB->MaxHeight, ectx.view.Y2)); - pcb_hid_expose_all(&ghid_hid, ®ion); + ectx.force = 0; + ectx.content.elem = NULL; + pcb_hid_expose_all(&ghid_hid, &ectx); + gport->drawable = save_drawable; gport->view = save_view; gport->view.canvas_width = save_width; Index: trunk/src_plugins/hid_gtk/gtkhid-main.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 6674) +++ trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 6675) @@ -40,6 +40,7 @@ #include "../src_plugins/lib_gtk_common/dlg_message.h" #include "../src_plugins/lib_gtk_common/dlg_print.h" #include "../src_plugins/lib_gtk_common/dlg_report.h" +#include "../src_plugins/lib_gtk_common/in_mouse.h" const char *ghid_cookie = "gtk hid"; const char *ghid_menu_cookie = "gtk hid menu"; Index: trunk/src_plugins/hid_gtk/gui-top-window.c =================================================================== --- trunk/src_plugins/hid_gtk/gui-top-window.c (revision 6674) +++ trunk/src_plugins/hid_gtk/gui-top-window.c (revision 6675) @@ -50,6 +50,7 @@ | we have our own shortcut table and capture the keys and send the events | there in ghid_port_key_press_cb(). */ +#define _POSIX_SOURCE #include "config.h" #include "conf_core.h" #include