]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/control.cpp
fix some possible crashes due to uninitialized variables - thanks to Steve Hartwell...
[wxWidgets.git] / src / mac / carbon / control.cpp
index ba7d6a7a3cee2c0c8619c3e280bff04949b27fc8..66c8c8f7c500a1dea40a97c8e25a1ce943c3ce7e 100644 (file)
@@ -9,11 +9,11 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "control.h"
 #endif
 
-#include "wx/defs.h"
+#include "wx/wxprec.h"
 
 #include "wx/control.h"
 #include "wx/panel.h"
@@ -85,11 +85,9 @@ bool wxControl::ProcessCommand (wxCommandEvent & event)
 
 void  wxControl::OnKeyDown( wxKeyEvent &event ) 
 {
-    if ( (ControlRef) m_macControl == NULL )
+    if ( m_peer == NULL || !m_peer->Ok() )
         return ;
     
-#if TARGET_CARBON
-
     char charCode ;
     UInt32 keyCode ;    
     UInt32 modifiers ;
@@ -98,16 +96,6 @@ void  wxControl::OnKeyDown( wxKeyEvent &event )
     GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyCode, typeUInt32, NULL,  sizeof(UInt32), NULL, &keyCode );
        GetEventParameter((EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
 
-    ::HandleControlKey( (ControlRef) m_macControl , keyCode , charCode , modifiers ) ;
-    
-#else
-    EventRecord *ev = (EventRecord*) wxTheApp->MacGetCurrentEvent() ;
-    short keycode ;
-    short keychar ;
-    keychar = short(ev->message & charCodeMask);
-    keycode = short(ev->message & keyCodeMask) >> 8 ;
-
-    ::HandleControlKey( (ControlRef) m_macControl , keycode , keychar , ev->modifiers ) ;
-#endif
+    m_peer->HandleKey( keyCode , charCode , modifiers ) ;
 }