]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toplevel.cpp
Moved the cleanup code to an EVT_WINDOW_DESTROY handler.
[wxWidgets.git] / src / mac / carbon / toplevel.cpp
index 83b905c227b6740571daa39f689c9a74dfa3874a..f290f8167fdcdc5731c6debef4e1aac82bfb2432 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) )
@@ -306,7 +310,7 @@ WXWidget wxTopLevelWindowMac::MacGetContainerForEmbedding()
 void wxTopLevelWindowMac::MacUpdate( long timestamp)
 {
 
-    wxMacPortStateHelper help( GetWindowPort( (WindowRef) m_macWindow) ) ;
+    wxMacPortStateHelper help( (GrafPtr) GetWindowPort( (WindowRef) m_macWindow) ) ;
 
     BeginUpdate( (WindowRef)m_macWindow ) ;
 
@@ -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 )
@@ -433,6 +430,7 @@ void wxTopLevelWindowMac::MacFireMouseEvent( WXEVENTREF evr )
         event.m_x = x ;
         event.m_y = y ;
         wxTheApp->s_captureWindow->GetEventHandler()->ProcessEvent( event ) ;
+        
         if ( ev->what == mouseUp )
         {
             wxTheApp->s_captureWindow = NULL ;