Index: trunk/src_plugins/hid_gtk/gtkhid-main.c =================================================================== --- trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 2631) +++ trunk/src_plugins/hid_gtk/gtkhid-main.c (revision 2632) @@ -254,7 +254,7 @@ if (!ghid_gui_is_up) return 0; - pcb_trace("ghid_control_is_pressed() d2\n"); + pcb_trace("ghid_control_is_pressed() d2 %x\n", gtk_widget_get_window(out->drawing_area)); gdk_window_get_pointer(gtk_widget_get_window(out->drawing_area), NULL, NULL, &mask); Index: trunk/src_plugins/hid_gtk/gui-output-events.c =================================================================== --- trunk/src_plugins/hid_gtk/gui-output-events.c (revision 2631) +++ trunk/src_plugins/hid_gtk/gui-output-events.c (revision 2632) @@ -205,6 +205,9 @@ ModifierKeysState mk; GdkModifierType state; +GHidPort *out = &ghid_port; +GdkModifierType mask; + /* Reject double and triple click events */ if (ev->type != GDK_BUTTON_PRESS) return TRUE; @@ -213,9 +216,11 @@ state = (GdkModifierType) (ev->state); mk = ghid_modifier_keys_state(&state); - pcb_trace("ghid_port_button_press_cb mk=%x\n", mk); + gdk_window_get_pointer(gtk_widget_get_window(out->drawing_area), NULL, NULL, &mask); + pcb_trace("ghid_port_button_press_cb mk=%x state=%x mask=%x\n", mk, state, mask); + hid_cfg_mouse_action(&ghid_mouse, ghid_mouse_button(ev->button) | mk); ghid_invalidate_all();