From ba12463b25a2fa3adba18f401faa6d76212753e3 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Wed, 21 Aug 2002 16:13:57 +0000 Subject: [PATCH] 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 --- src/mac/app.cpp | 36 +++++++++++++++++++----------------- src/mac/carbon/app.cpp | 36 +++++++++++++++++++----------------- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/src/mac/app.cpp b/src/mac/app.cpp index 864237148c..6473c26f07 100644 --- a/src/mac/app.cpp +++ b/src/mac/app.cpp @@ -1823,6 +1823,9 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr ) bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) { + if ( !focus ) + return false ; + short keycode ; short keychar ; 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 ) { + if ( !focus ) + return false ; + short keycode ; short keychar ; keychar = short(keymessage & charCodeMask); @@ -1975,24 +1981,20 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier long keyval = wxMacTranslateKey(keychar, keycode) ; bool handled = false ; - if ( focus ) - { - wxKeyEvent event(wxEVT_KEY_UP); - event.m_shiftDown = modifiers & shiftKey; - event.m_controlDown = modifiers & controlKey; - event.m_altDown = modifiers & optionKey; - event.m_metaDown = modifiers & cmdKey; - if ( event.m_controlDown ) - { - } - event.m_keyCode = wxToupper(keyval ); - event.m_x = wherex; - event.m_y = wherey; - event.m_timeStamp = when; - event.SetEventObject(focus); - handled = focus->GetEventHandler()->ProcessEvent( event ) ; - } + wxKeyEvent event(wxEVT_KEY_UP); + event.m_shiftDown = modifiers & shiftKey; + event.m_controlDown = modifiers & controlKey; + event.m_altDown = modifiers & optionKey; + event.m_metaDown = modifiers & cmdKey; + event.m_keyCode = wxToupper(keyval ); + + event.m_x = wherex; + event.m_y = wherey; + event.m_timeStamp = when; + event.SetEventObject(focus); + handled = focus->GetEventHandler()->ProcessEvent( event ) ; + return handled ; } void wxApp::MacHandleActivateEvent( WXEVENTREF evr ) diff --git a/src/mac/carbon/app.cpp b/src/mac/carbon/app.cpp index 864237148c..6473c26f07 100644 --- a/src/mac/carbon/app.cpp +++ b/src/mac/carbon/app.cpp @@ -1823,6 +1823,9 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr ) bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey ) { + if ( !focus ) + return false ; + short keycode ; short keychar ; 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 ) { + if ( !focus ) + return false ; + short keycode ; short keychar ; keychar = short(keymessage & charCodeMask); @@ -1975,24 +1981,20 @@ bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifier long keyval = wxMacTranslateKey(keychar, keycode) ; bool handled = false ; - if ( focus ) - { - wxKeyEvent event(wxEVT_KEY_UP); - event.m_shiftDown = modifiers & shiftKey; - event.m_controlDown = modifiers & controlKey; - event.m_altDown = modifiers & optionKey; - event.m_metaDown = modifiers & cmdKey; - if ( event.m_controlDown ) - { - } - event.m_keyCode = wxToupper(keyval ); - event.m_x = wherex; - event.m_y = wherey; - event.m_timeStamp = when; - event.SetEventObject(focus); - handled = focus->GetEventHandler()->ProcessEvent( event ) ; - } + wxKeyEvent event(wxEVT_KEY_UP); + event.m_shiftDown = modifiers & shiftKey; + event.m_controlDown = modifiers & controlKey; + event.m_altDown = modifiers & optionKey; + event.m_metaDown = modifiers & cmdKey; + event.m_keyCode = wxToupper(keyval ); + + event.m_x = wherex; + event.m_y = wherey; + event.m_timeStamp = when; + event.SetEventObject(focus); + handled = focus->GetEventHandler()->ProcessEvent( event ) ; + return handled ; } void wxApp::MacHandleActivateEvent( WXEVENTREF evr ) -- 2.45.2