]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/app.cpp
Fix building wxSTC as a DLL using MinGW GCC 3.x.
[wxWidgets.git] / src / mac / app.cpp
index fd5c1b0d4f27084b82632c002cd13d8efb791a49..63898fed72d4d8c70b2070be27daffaa88769e7a 100644 (file)
@@ -73,7 +73,6 @@ extern wxList *wxWinMacControlList;
 // statics for implementation
 
 static bool s_inYield = FALSE;
-static bool s_inOnIdle = FALSE;
 
 #if TARGET_CARBON
 static bool s_inReceiveEvent = FALSE ;
@@ -972,6 +971,9 @@ wxApp::wxApp()
 {
   m_printMode = wxPRINT_WINDOWS;
   m_auto3D = TRUE;
+
+  m_macCurrentEvent = NULL ;
+  m_macCurrentEventHandlerCallRef = NULL ;
 }
 
 bool wxApp::Initialized()
@@ -1358,6 +1360,12 @@ void wxApp::MacHandleModifierEvents( WXEVENTREF evr )
             event.SetEventType( ( ev->modifiers & optionKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
             focus->GetEventHandler()->ProcessEvent( event ) ;
         }
+        if ( ev->modifiers ^ s_lastModifiers ) & cmdKey )
+        {
+            event.m_keyCode = WXK_COMMAND ;
+            event.SetEventType( ( ev->modifiers & cmdKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
+            focus->GetEventHandler()->ProcessEvent( event ) ;
+        }
         s_lastModifiers = ev->modifiers ;
     }
 }
@@ -1692,6 +1700,8 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr )
 
         if ( MacSendKeyDownEvent( focus , ev->message , ev->modifiers , ev->when , ev->where.h , ev->where.v ) == false )
         {
+#if 0
+            // we must handle control keys the other way round, otherwise text content is updated too late
             // has not been handled -> perform default
             wxControl* control = wxDynamicCast( focus , wxControl ) ;
             if ( control &&  control->GetMacControl() != NULL )
@@ -1702,6 +1712,7 @@ void wxApp::MacHandleKeyDownEvent( WXEVENTREF evr )
                 keycode = short(ev->message & keyCodeMask) >> 8 ;
                 ::HandleControlKey( (ControlHandle) control->GetMacControl() , keycode , keychar , ev->modifiers ) ;
             }
+#endif
         }
     }
 }