Minor improvement to keyevent handling.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Karsten Ballüder
1999-06-23 12:49:01 +00:00
parent c0b042fce9
commit d728dd40e8
2 changed files with 38 additions and 38 deletions

View File

@@ -631,25 +631,6 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_e
key_code = map_to_wx_keysym( gdk_event->keyval );
/* wxMSW doesn't send char events with Alt pressed */
if ((key_code != 0) &&
((gdk_event->state & GDK_MOD1_MASK) == 0) &&
((gdk_event->state & GDK_MOD2_MASK) == 0))
{
wxKeyEvent event2( wxEVT_CHAR );
event2.SetTimestamp( gdk_event->time );
event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK);
// event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK);
// event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK);
event2.m_keyCode = key_code;
event2.m_scanCode = gdk_event->keyval;
event2.m_x = x;
event2.m_y = y;
event2.SetEventObject( win );
ret = (ret || win->GetEventHandler()->ProcessEvent( event2 ));
}
#if wxUSE_ACCEL
if (!ret)
{
@@ -667,6 +648,25 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_e
}
}
#endif // wxUSE_ACCEL
/* wxMSW doesn't send char events with Alt pressed */
/* Only send wxEVT_CHAR event if not processed yet. Thus, ALT-x
will only be sent if it is not a menu accelerator. */
if ((key_code != 0) && ! ret )
{
wxKeyEvent event2( wxEVT_CHAR );
event2.SetTimestamp( gdk_event->time );
event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK);
event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK);
event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK);
event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK);
event2.m_keyCode = key_code;
event2.m_scanCode = gdk_event->keyval;
event2.m_x = x;
event2.m_y = y;
event2.SetEventObject( win );
ret = (ret || win->GetEventHandler()->ProcessEvent( event2 ));
}
/* win is a control: tab can be propagated up */
if ( (!ret) &&