X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fec9cc08e7d94574af3f04b4c5fbafde63ac0b31..5dafb071ba85e7329aa4a0ac176f3ec8e13e55dc:/src/mac/classic/app.cpp diff --git a/src/mac/classic/app.cpp b/src/mac/classic/app.cpp index 5c8cf06992..80a5cd86da 100644 --- a/src/mac/classic/app.cpp +++ b/src/mac/classic/app.cpp @@ -34,11 +34,11 @@ #include "wx/dialog.h" #include "wx/msgdlg.h" #include "wx/textctrl.h" + #include "wx/memory.h" + #include "wx/gdicmn.h" + #include "wx/module.h" #endif -#include "wx/gdicmn.h" -#include "wx/module.h" -#include "wx/memory.h" #include "wx/tooltip.h" #include "wx/docview.h" #include "wx/filename.h" @@ -48,9 +48,9 @@ // mac #ifndef __DARWIN__ - #if __option(profile) - #include - #endif + #if __option(profile) + #include + #endif #endif #include "apprsrc.h" @@ -2015,31 +2015,34 @@ bool wxApp::MacSendKeyDownEvent( wxWindow* focus , long keymessage , long modifi // backdoor handler for default return and command escape if ( !handled && (!focus->IsKindOf(CLASSINFO(wxControl) ) || !focus->MacCanFocus() ) ) { - // if window is not having a focus still testing for default enter or cancel - // TODO add the UMA version for ActiveNonFloatingWindow - wxWindow* focus = wxFindWinFromMacWindow( (WXWindow) FrontWindow() ) ; - if ( focus ) - { + // if window is not having a focus still testing for default enter or cancel + // TODO add the UMA version for ActiveNonFloatingWindow + wxWindow* focus = wxFindWinFromMacWindow( (WXWindow) FrontWindow() ) ; + if ( focus ) + { if ( keyval == WXK_RETURN ) { - wxButton *def = wxDynamicCast(focus->GetDefaultItem(), - wxButton); - if ( def && def->IsEnabled() ) - { - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId() ); - event.SetEventObject(def); - def->Command(event); - return true ; + wxTopLevelWindow *tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow); + if ( tlw && tlw->GetDefaultItem() ) + { + wxButton *def = wxDynamicCast(tlw->GetDefaultItem(), wxButton); + if ( def && def->IsEnabled() ) + { + wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, def->GetId() ); + event.SetEventObject(def); + def->Command(event); + return true ; + } } } /* generate wxID_CANCEL if command-. or has been pressed (typically in dialogs) */ else if (keyval == WXK_ESCAPE || (keyval == '.' && modifiers & cmdKey ) ) { - wxCommandEvent new_event(wxEVT_COMMAND_BUTTON_CLICKED,wxID_CANCEL); - new_event.SetEventObject( focus ); - handled = focus->GetEventHandler()->ProcessEvent( new_event ); + wxCommandEvent new_event(wxEVT_COMMAND_BUTTON_CLICKED,wxID_CANCEL); + new_event.SetEventObject( focus ); + handled = focus->GetEventHandler()->ProcessEvent( new_event ); } - } + } } return handled ; }