moving special characters handling for EVT_CHAR into SetupKeyEvent, fixes #15784
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -455,6 +455,14 @@ void wxWidgetCocoaImpl::SetupKeyEvent(wxKeyEvent &wxevent , NSEvent * nsEvent, N
|
|||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
long keycode = wxOSXTranslateCocoaKey( nsEvent, wxEVT_CHAR );
|
||||||
|
if ( (keycode > 0 && keycode < WXK_SPACE) || keycode == WXK_DELETE || keycode >= WXK_START )
|
||||||
|
{
|
||||||
|
keyval = keycode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( !keyval )
|
if ( !keyval )
|
||||||
{
|
{
|
||||||
@@ -1412,15 +1420,9 @@ void wxWidgetCocoaImpl::doCommandBySelector(void* sel, WXWidget slf, void* _cmd)
|
|||||||
{
|
{
|
||||||
// Generate wxEVT_CHAR if wxEVT_KEY_DOWN is not handled.
|
// Generate wxEVT_CHAR if wxEVT_KEY_DOWN is not handled.
|
||||||
|
|
||||||
long keycode = wxOSXTranslateCocoaKey( m_lastKeyDownEvent, wxEVT_CHAR );
|
|
||||||
|
|
||||||
wxKeyEvent wxevent2(wxevent) ;
|
wxKeyEvent wxevent2(wxevent) ;
|
||||||
wxevent2.SetEventType(wxEVT_CHAR);
|
wxevent2.SetEventType(wxEVT_CHAR);
|
||||||
SetupKeyEvent( wxevent2, m_lastKeyDownEvent );
|
SetupKeyEvent( wxevent2, m_lastKeyDownEvent );
|
||||||
if ( (keycode > 0 && keycode < WXK_SPACE) || keycode == WXK_DELETE || keycode >= WXK_START )
|
|
||||||
{
|
|
||||||
wxevent2.m_keyCode = keycode;
|
|
||||||
}
|
|
||||||
GetWXPeer()->OSXHandleKeyEvent(wxevent2);
|
GetWXPeer()->OSXHandleKeyEvent(wxevent2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2710,19 +2712,20 @@ bool wxWidgetCocoaImpl::DoHandleCharEvent(NSEvent *event, NSString *text)
|
|||||||
wxevent.m_shiftDown = wxevent.m_controlDown = wxevent.m_altDown = wxevent.m_metaDown = false;
|
wxevent.m_shiftDown = wxevent.m_controlDown = wxevent.m_altDown = wxevent.m_metaDown = false;
|
||||||
wxevent.m_rawCode = 0;
|
wxevent.m_rawCode = 0;
|
||||||
wxevent.m_rawFlags = 0;
|
wxevent.m_rawFlags = 0;
|
||||||
|
|
||||||
|
unichar aunichar = [text characterAtIndex:i];
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
wxevent.m_uniChar = aunichar;
|
||||||
|
#endif
|
||||||
|
wxevent.m_keyCode = aunichar < 0x80 ? aunichar : WXK_NONE;
|
||||||
|
|
||||||
|
wxevent.SetEventObject(peer);
|
||||||
|
wxevent.SetId(peer->GetId());
|
||||||
|
|
||||||
|
if ( event )
|
||||||
|
wxevent.SetTimestamp( (int)([event timestamp] * 1000) ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( event )
|
|
||||||
wxevent.SetTimestamp( (int)([event timestamp] * 1000) ) ;
|
|
||||||
unichar aunichar = [text characterAtIndex:i];
|
|
||||||
#if wxUSE_UNICODE
|
|
||||||
wxevent.m_uniChar = aunichar;
|
|
||||||
#endif
|
|
||||||
wxevent.m_keyCode = aunichar < 0x80 ? aunichar : WXK_NONE;
|
|
||||||
|
|
||||||
wxevent.SetEventObject(peer);
|
|
||||||
wxevent.SetId(peer->GetId());
|
|
||||||
|
|
||||||
result = peer->OSXHandleKeyEvent(wxevent) || result;
|
result = peer->OSXHandleKeyEvent(wxevent) || result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user