bool wxApp::sm_isEmbedded = false; // Normally we're not a plugin
-#if wxOSX_USE_COCOA_OR_CARBON
+#if wxOSX_USE_CARBON
//----------------------------------------------------------------------
// Core Apple Event Support
if ( win )
{
wxCommandEvent exitEvent(wxEVT_COMMAND_MENU_SELECTED, s_macExitMenuItemId);
- if (!win->ProcessEvent(exitEvent))
+ if (!win->GetEventHandler()->ProcessEvent(exitEvent))
win->Close(true) ;
}
else
// Yield to other processes
-bool wxApp::Yield(bool onlyIfNeeded)
+bool wxApp::DoYield(bool onlyIfNeeded, long eventsToProcess)
{
#if wxUSE_THREADS
// Yielding from a non-gui thread needs to bail out, otherwise we end up
}
m_isInsideYield = true;
+ m_eventsToProcessInsideYield = eventsToProcess;
#if wxUSE_LOG
// disable log flushing from here because a call to wxYield() shouldn't
if ( !focus )
return false ;
- bool handled;
wxKeyEvent event(wxEVT_KEY_DOWN) ;
MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
- handled = focus->HandleWindowEvent( event ) ;
- if ( handled && event.GetSkipped() )
- handled = false ;
-
-#if wxUSE_ACCEL
- if ( !handled )
- {
- wxWindow *ancestor = focus;
- while (ancestor)
- {
- int command = ancestor->GetAcceleratorTable()->GetCommand( event );
- if (command != -1)
- {
- wxEvtHandler * const handler = ancestor->GetEventHandler();
-
- wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command );
- handled = handler->ProcessEvent( command_event );
-
- if ( !handled )
- {
- // accelerators can also be used with buttons, try them too
- command_event.SetEventType(wxEVT_COMMAND_BUTTON_CLICKED);
- handled = handler->ProcessEvent( command_event );
- }
-
- break;
- }
-
- if (ancestor->IsTopLevel())
- break;
-
- ancestor = ancestor->GetParent();
- }
- }
-#endif // wxUSE_ACCEL
-
- return handled ;
+ return focus->OSXHandleKeyEvent(event);
}
bool wxApp::MacSendKeyUpEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar )
if ( !focus )
return false ;
- bool handled;
wxKeyEvent event( wxEVT_KEY_UP ) ;
MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
- handled = focus->HandleWindowEvent( event ) ;
- return handled ;
+ return focus->OSXHandleKeyEvent(event) ;
}
bool wxApp::MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar )
return false ;
wxKeyEvent event(wxEVT_CHAR) ;
MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
- long keyval = event.m_keyCode ;
bool handled = false ;
#if wxOSX_USE_CARBON
+ long keyval = event.m_keyCode ;
wxNonOwnedWindow *tlw = focus->MacGetTopLevelWindow() ;
if (tlw)