wxWindow* focus = wxWindow::FindFocus() ;
event.SetEventObject(focus);
- if ( (modifiers ^ wxTheApp->s_lastModifiers ) & controlKey )
+ if ( focus && (modifiers ^ wxTheApp->s_lastModifiers ) & controlKey )
{
event.m_keyCode = WXK_CONTROL ;
event.SetEventType( ( modifiers & controlKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
focus->GetEventHandler()->ProcessEvent( event ) ;
}
- if ( (modifiers ^ wxTheApp->s_lastModifiers ) & shiftKey )
+ if ( focus && (modifiers ^ wxTheApp->s_lastModifiers ) & shiftKey )
{
event.m_keyCode = WXK_SHIFT ;
event.SetEventType( ( modifiers & shiftKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
focus->GetEventHandler()->ProcessEvent( event ) ;
}
- if ( (modifiers ^ wxTheApp->s_lastModifiers ) & optionKey )
+ if ( focus && (modifiers ^ wxTheApp->s_lastModifiers ) & optionKey )
{
event.m_keyCode = WXK_ALT ;
event.SetEventType( ( modifiers & optionKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
if (show)
{
- ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowShowTransitionAction,nil);
+ // this is leading to incorrect window layering in some situations
+ // ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowShowTransitionAction,nil);
+ ::ShowWindow( (WindowRef)m_macWindow ) ;
::SelectWindow( (WindowRef)m_macWindow ) ;
// no need to generate events here, they will get them triggered by macos
// actually they should be , but apparently they are not
}
else
{
- ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowHideTransitionAction,nil);
+ // this is leading to incorrect window layering in some situations
+ // ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowHideTransitionAction,nil);
+ ::HideWindow( (WindowRef)m_macWindow ) ;
}
if ( !show )