]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toplevel.cpp
update from Hans F. Nordhaug
[wxWidgets.git] / src / mac / carbon / toplevel.cpp
index f1a4f5fd6a65ecea9a213dea5e1186a0d4eae7de..d4f3e31c9712b8ece44f3b536cca021f038aa468 100644 (file)
@@ -17,7 +17,7 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "toplevel.h"
 #endif
 
@@ -159,8 +159,9 @@ static pascal OSStatus TextInputEventHandler( EventHandlerCallRef handler , Even
 static pascal OSStatus KeyboardEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
 {
     OSStatus result = eventNotHandledErr ;
-
-    wxWindow* focus = wxWindow::FindFocus() ;
+    // call DoFindFocus instead of FindFocus, because for Composite Windows(like WxGenericListCtrl)
+    // FindFocus does not return the actual focus window,but the enclosing window
+    wxWindow* focus = wxWindow::DoFindFocus();
     if ( focus == NULL )
         return result ;
         
@@ -212,7 +213,6 @@ static pascal OSStatus KeyboardEventHandler( EventHandlerCallRef handler , Event
                 event.m_x = point.h;
                 event.m_y = point.v;
                 event.SetTimestamp(when);
-                wxWindow* focus = wxWindow::FindFocus() ;
                 event.SetEventObject(focus);
 
                 if ( focus && (modifiers ^ wxTheApp->s_lastModifiers ) & controlKey )