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:
@@ -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 )
|
||||||
|
@@ -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 )
|
||||||
|
Reference in New Issue
Block a user