]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toplevel.cpp
fixed the wrong custom build messages
[wxWidgets.git] / src / mac / carbon / toplevel.cpp
index baeb703641f2dbe95692f2e3c6f485f0e7d7be75..8db3f7e902143b929de3273c07e21413c9e0cef5 100644 (file)
@@ -101,6 +101,7 @@ void wxTopLevelWindowMac::Init()
     m_maximizeOnShow = FALSE;
     m_macNoEraseUpdateRgn = NewRgn() ;
     m_macNeedsErasing = false ;
+    m_macWindow = NULL ;
 }
 
 bool wxTopLevelWindowMac::Create(wxWindow *parent,
@@ -130,9 +131,12 @@ bool wxTopLevelWindowMac::Create(wxWindow *parent,
 
 wxTopLevelWindowMac::~wxTopLevelWindowMac()
 {
-    wxToolTip::NotifyWindowDelete(m_macWindow) ;
-    UMADisposeWindow( (WindowRef) m_macWindow ) ;
-
+    if ( m_macWindow )
+    {
+        wxToolTip::NotifyWindowDelete(m_macWindow) ;
+        UMADisposeWindow( (WindowRef) m_macWindow ) ;
+    }
+    
     wxRemoveMacWindowAssociation( this ) ;
 
     wxTopLevelWindows.DeleteObject(this);
@@ -175,7 +179,7 @@ void wxTopLevelWindowMac::Iconize(bool iconize)
 
 bool wxTopLevelWindowMac::IsIconized() const
 {
-       // mac dialogs cannot be iconized
+    // mac dialogs cannot be iconized
     return FALSE;
 }
 
@@ -229,7 +233,7 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
     WindowClass wclass = 0;
     WindowAttributes attr = kWindowNoAttributes ;
     
-    if ( HasFlag(wxTINY_CAPTION_HORIZ) ||  HasFlag(wxTINY_CAPTION_VERT) )
+    if ( HasFlag( wxFRAME_TOOL_WINDOW) || HasFlag(wxTINY_CAPTION_HORIZ) ||  HasFlag(wxTINY_CAPTION_VERT) )
     {
         wclass = kFloatingWindowClass ;
         if ( HasFlag(wxTINY_CAPTION_VERT) )
@@ -241,7 +245,7 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
     {
         if ( HasFlag( wxDIALOG_MODAL ) )
         {
-            wclass = kMovableModalWindowClass ;
+            wclass = kDocumentWindowClass ; // kMovableModalWindowClass ;
         }
         else 
         {
@@ -416,13 +420,6 @@ void wxTopLevelWindowMac::MacFireMouseEvent( WXEVENTREF evr )
     event.m_x += m_x;
     event.m_y += m_y;
 
-/*
-    wxPoint origin = GetClientAreaOrigin() ;
-
-    event.m_x += origin.x ;
-    event.m_y += origin.y ;
-*/
-    
     event.m_timeStamp = ev->when;
     event.SetEventObject(this);
     if ( wxTheApp->s_captureWindow )
@@ -432,7 +429,9 @@ void wxTopLevelWindowMac::MacFireMouseEvent( WXEVENTREF evr )
         wxTheApp->s_captureWindow->ScreenToClient( &x , &y ) ;
         event.m_x = x ;
         event.m_y = y ;
+        event.SetEventObject( wxTheApp->s_captureWindow ) ;
         wxTheApp->s_captureWindow->GetEventHandler()->ProcessEvent( event ) ;
+        
         if ( ev->what == mouseUp )
         {
             wxTheApp->s_captureWindow = NULL ;