GdkEvent *WXUNUSED(event),
const wxChar *name )
{
- // to enable logging of the focus events replace 0 with 1
-#if 0
+/*
static bool s_done = FALSE;
if ( !s_done )
{
wxLog::AddTraceMask("focus");
s_done = TRUE;
}
-#endif
wxLogTrace(_T("FOCUS NOW AT: %s"), name);
+*/
return FALSE;
}
long key_code = 0;
switch (gdk_event->keyval)
{
+ case GDK_Shift_L:
+ case GDK_Shift_R: key_code = WXK_SHIFT; break;
+ case GDK_Control_L:
+ case GDK_Control_R: key_code = WXK_CONTROL; break;
+ case GDK_Menu: key_code = WXK_MENU; break;
+ case GDK_Help: key_code = WXK_HELP; break;
case GDK_BackSpace: key_code = WXK_BACK; break;
case GDK_ISO_Left_Tab:
case GDK_KP_Tab:
}
}
- if (!key_code) return FALSE;
+ int x = 0;
+ int y = 0;
+ GdkModifierType state;
+ if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state);
wxKeyEvent event( wxEVT_KEY_DOWN );
event.SetTimestamp( gdk_event->time );
event.m_altDown = (gdk_event->state & GDK_MOD1_MASK);
event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK);
event.m_keyCode = key_code;
- event.m_x = 0;
- event.m_y = 0;
+ event.m_scanCode = gdk_event->keyval;
+ event.m_x = x;
+ event.m_y = y;
event.SetEventObject( win );
bool ret = win->GetEventHandler()->ProcessEvent( event );
long key_code = 0;
switch (gdk_event->keyval)
{
+ case GDK_Shift_L:
+ case GDK_Shift_R: key_code = WXK_SHIFT; break;
+ case GDK_Control_L:
+ case GDK_Control_R: key_code = WXK_CONTROL; break;
+ case GDK_Menu: key_code = WXK_MENU; break;
+ case GDK_Help: key_code = WXK_HELP; break;
case GDK_BackSpace: key_code = WXK_BACK; break;
case GDK_ISO_Left_Tab:
case GDK_KP_Tab:
}
}
- if (!key_code) return FALSE;
+ int x = 0;
+ int y = 0;
+ GdkModifierType state;
+ if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state);
wxKeyEvent event( wxEVT_KEY_UP );
event.SetTimestamp( gdk_event->time );
event.m_altDown = (gdk_event->state & GDK_MOD1_MASK);
event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK);
event.m_keyCode = key_code;
- event.m_x = 0;
- event.m_y = 0;
+ event.m_scanCode = gdk_event->keyval;
+ event.m_x = x;
+ event.m_y = y;
event.SetEventObject( win );
if (win->GetEventHandler()->ProcessEvent( event ))
wxPrintf( win->GetClassInfo()->GetClassName() );
wxPrintf( _T(".\n") );
*/
-
if (!win->m_hasVMT) return FALSE;
if (g_blockEventsOnDrag) return TRUE;
if (g_blockEventsOnScroll) return TRUE;