]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/app.cpp
wxDrawerWindow - [ 909351 ] Drawer window for OS X Carbon - somewhat heavily modified
[wxWidgets.git] / src / mac / carbon / app.cpp
index 612040a6af9da87bcddeb00dedeba175787d4e4a..d79c0356e84ebf8e5874a015835f38fbbbab7029 100644 (file)
@@ -402,7 +402,7 @@ wxMacAppMenuEventHandler( EventHandlerCallRef handler , EventRef event , void *d
 
         if ( type )
         {
-            wxMenuEvent wxevent(type, cmd);
+            wxMenuEvent wxevent(type, cmd, menu);
             wxevent.SetEventObject(menu);
 
             wxEvtHandler* handler = menu->GetEventHandler();
@@ -520,7 +520,17 @@ pascal OSStatus wxMacAppEventHandler( EventHandlerCallRef handler , EventRef eve
             result = wxMacAppMenuEventHandler( handler , event , data ) ;
             break ;
         case kEventClassMouse :
-            result = wxMacTopLevelMouseEventHandler( handler , event , NULL ) ;
+            {
+                wxMacCarbonEvent cEvent( event ) ;
+                
+                WindowRef window ;
+                Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
+                ::FindWindow(screenMouseLocation, &window);
+                // only send this event in case it had not already been sent to a tlw, as we get
+                // double events otherwise (in case event.skip) was called
+                if ( window == NULL )
+                    result = wxMacTopLevelMouseEventHandler( handler , event , NULL ) ;
+            }
             break ;
         case kEventClassAppleEvent :
             {
@@ -545,6 +555,8 @@ DEFINE_ONE_SHOT_HANDLER_GETTER( wxMacAppEventHandler )
 WXIMPORT char std::__throws_bad_alloc ;
 #endif
 
+#if __WXDEBUG__
+
 pascal static void wxMacAssertOutputHandler(OSType componentSignature, UInt32 options, 
     const char *assertionString, const char *exceptionLabelString, 
     const char *errorString, const char *fileName, long lineNumber, void *value, ConstStr255Param outputMsg)
@@ -581,6 +593,8 @@ pascal static void wxMacAssertOutputHandler(OSType componentSignature, UInt32 op
 #endif
 }
 
+#endif //__WXDEBUG__
+
 bool wxApp::Initialize(int& argc, wxChar **argv)
 {
     // Mac-specific
@@ -592,12 +606,6 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
     SetEventMask( everyEvent ) ;
     UMAShowWatchCursor() ;
 
-#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
-    // open shared library resources from here since we don't have
-    //   __wxinitialize in Mach-O shared libraries
-    wxStAppResource::OpenSharedLibraryResource(NULL);
-#endif
-
 #ifndef __DARWIN__
 #  if __option(profile)
     ProfilerInit( collectDetailed, bestTimeBase , 40000 , 50 ) ;
@@ -711,12 +719,6 @@ void wxApp::CleanUp()
 #  endif
 #endif
 
-#if defined(WXMAKINGDLL_CORE) && defined(__DARWIN__)
-    // close shared library resources from here since we don't have
-    //   __wxterminate in Mach-O shared libraries
-    wxStAppResource::CloseSharedLibraryResource();
-#endif
-
     UMACleanupToolbox() ;
     if (s_macCursorRgn) {
         ::DisposeRgn((RgnHandle)s_macCursorRgn);