Index: trunk/src/action_helper.c =================================================================== --- trunk/src/action_helper.c (revision 2628) +++ trunk/src/action_helper.c (revision 2629) @@ -235,7 +235,9 @@ SaveMode(); saved_mode = true; + pcb_trace("click_cb() SetMode, pre %d\n", conf_core.editor.mode); SetMode(gui->control_is_pressed()? PCB_MODE_COPY : PCB_MODE_MOVE); + pcb_trace("click_cb() SetMode, post %d\n", conf_core.editor.mode); Crosshair.AttachedObject.Ptr1 = Note.ptr1; Crosshair.AttachedObject.Ptr2 = Note.ptr2; Crosshair.AttachedObject.Ptr3 = Note.ptr3; Index: trunk/src_plugins/hid_gtk/gtkhid-main.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 2628) +++ trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 2629) @@ -249,10 +249,17 @@ GdkModifierType mask; GHidPort *out = &ghid_port; + pcb_trace("ghid_control_is_pressed() d1\n"); + if (!ghid_gui_is_up) return 0; + pcb_trace("ghid_control_is_pressed() d2\n"); + gdk_window_get_pointer(gtk_widget_get_window(out->drawing_area), NULL, NULL, &mask); + + pcb_trace("ghid_control_is_pressed() d3 %x %x\n", mask, GDK_CONTROL_MASK); + return (mask & GDK_CONTROL_MASK) ? TRUE : FALSE; }