fixing a possible NULL ptr exception when dispatching key events

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2002-08-21 16:13:57 +00:00
parent 17e504023d
commit ba12463b25
2 changed files with 38 additions and 34 deletions

View File

@@ -1823,6 +1823,9 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr )
bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey )
{ {
if ( !focus )
return false ;
short keycode ; short keycode ;
short keychar ; short keychar ;
keychar = short(keymessage & charCodeMask); keychar = short(keymessage & charCodeMask);
@@ -1959,6 +1962,9 @@ void wxApp::MacHandleKeyUpEvent( WXEVENTREF evr )
bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey )
{ {
if ( !focus )
return false ;
short keycode ; short keycode ;
short keychar ; short keychar ;
keychar = short(keymessage & charCodeMask); keychar = short(keymessage & charCodeMask);
@@ -1975,16 +1981,12 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
long keyval = wxMacTranslateKey(keychar, keycode) ; long keyval = wxMacTranslateKey(keychar, keycode) ;
bool handled = false ; bool handled = false ;
if ( focus )
{
wxKeyEvent event(wxEVT_KEY_UP); wxKeyEvent event(wxEVT_KEY_UP);
event.m_shiftDown = modifiers & shiftKey; event.m_shiftDown = modifiers & shiftKey;
event.m_controlDown = modifiers & controlKey; event.m_controlDown = modifiers & controlKey;
event.m_altDown = modifiers & optionKey; event.m_altDown = modifiers & optionKey;
event.m_metaDown = modifiers & cmdKey; event.m_metaDown = modifiers & cmdKey;
if ( event.m_controlDown )
{
}
event.m_keyCode = wxToupper(keyval ); event.m_keyCode = wxToupper(keyval );
event.m_x = wherex; event.m_x = wherex;
@@ -1992,7 +1994,7 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
event.m_timeStamp = when; event.m_timeStamp = when;
event.SetEventObject(focus); event.SetEventObject(focus);
handled = focus->GetEventHandler()->ProcessEvent( event ) ; handled = focus->GetEventHandler()->ProcessEvent( event ) ;
}
return handled ; return handled ;
} }
void wxApp::MacHandleActivateEvent( WXEVENTREF evr ) void wxApp::MacHandleActivateEvent( WXEVENTREF evr )

View File

@@ -1823,6 +1823,9 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr )
bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey )
{ {
if ( !focus )
return false ;
short keycode ; short keycode ;
short keychar ; short keychar ;
keychar = short(keymessage & charCodeMask); keychar = short(keymessage & charCodeMask);
@@ -1959,6 +1962,9 @@ void wxApp::MacHandleKeyUpEvent( WXEVENTREF evr )
bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey )
{ {
if ( !focus )
return false ;
short keycode ; short keycode ;
short keychar ; short keychar ;
keychar = short(keymessage & charCodeMask); keychar = short(keymessage & charCodeMask);
@@ -1975,16 +1981,12 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
long keyval = wxMacTranslateKey(keychar, keycode) ; long keyval = wxMacTranslateKey(keychar, keycode) ;
bool handled = false ; bool handled = false ;
if ( focus )
{
wxKeyEvent event(wxEVT_KEY_UP); wxKeyEvent event(wxEVT_KEY_UP);
event.m_shiftDown = modifiers & shiftKey; event.m_shiftDown = modifiers & shiftKey;
event.m_controlDown = modifiers & controlKey; event.m_controlDown = modifiers & controlKey;
event.m_altDown = modifiers & optionKey; event.m_altDown = modifiers & optionKey;
event.m_metaDown = modifiers & cmdKey; event.m_metaDown = modifiers & cmdKey;
if ( event.m_controlDown )
{
}
event.m_keyCode = wxToupper(keyval ); event.m_keyCode = wxToupper(keyval );
event.m_x = wherex; event.m_x = wherex;
@@ -1992,7 +1994,7 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier
event.m_timeStamp = when; event.m_timeStamp = when;
event.SetEventObject(focus); event.SetEventObject(focus);
handled = focus->GetEventHandler()->ProcessEvent( event ) ; handled = focus->GetEventHandler()->ProcessEvent( event ) ;
}
return handled ; return handled ;
} }
void wxApp::MacHandleActivateEvent( WXEVENTREF evr ) void wxApp::MacHandleActivateEvent( WXEVENTREF evr )