]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dirmac.cpp
Fixed overlapping buttons in wizard on MacOS X
[wxWidgets.git] / src / mac / carbon / dirmac.cpp
index 5aed922f84dbdff17f665c032c7042991b011974..0ccaf0b8e953dc4029c279023ba179d12e627803 100644 (file)
@@ -40,6 +40,8 @@
   #include <windows.h>
 #endif
 
+#include "wx/mac/private.h"
+
 #include "MoreFiles.h"
 #include "MoreFilesExtras.h"
 
@@ -116,7 +118,8 @@ wxDirData::wxDirData(const wxString& dirname)
        m_CPB.hFileInfo.ioNamePtr = m_name ;
        m_index = 0 ;
 
-       FSpGetDirectoryID( &fsspec , &m_dirId , &m_isDir ) ;
+       OSErr err = FSpGetDirectoryID( &fsspec , &m_dirId , &m_isDir ) ;
+        wxASSERT_MSG( err == noErr , "Error accessing directory") ;
 }
 
 wxDirData::~wxDirData()
@@ -154,6 +157,11 @@ bool wxDirData::Read(wxString *filename)
                strcpy( (char *)m_name, c_name);
 #else
                p2cstr( m_name ) ;
+#endif
+#if TARGET_CARBON
+                // under X thats the way the mounting points look like
+                if ( ( m_CPB.dirInfo.ioDrDirID == 0 ) && ( m_flags & wxDIR_DIRS) )
+                        break ;
 #endif
                if ( ( m_CPB.dirInfo.ioFlAttrib & ioDirMask) != 0 && (m_flags & wxDIR_DIRS) ) //  we have a directory
                        break ;
@@ -165,7 +173,7 @@ bool wxDirData::Read(wxString *filename)
                        continue ;
 
                wxString file( m_name ) ;
-               if ( m_filespec.IsEmpty() || m_filespec == "*.*" )
+               if ( m_filespec.IsEmpty() || m_filespec == "*.*" || m_filespec == "*" )
                {
                }
                else if ( m_filespec.Length() > 1 && m_filespec.Left(1) =="*" )
@@ -251,7 +259,10 @@ wxString wxDir::GetName() const
 
 wxDir::~wxDir()
 {
-    delete M_DIR;
+    if (M_DIR != NULL) {
+        delete M_DIR;
+        m_data = NULL;
+    }
 }
 
 // ----------------------------------------------------------------------------