]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/dirdlgg.cpp
fixed SaveDIB() crash with BW images (patch 1045884)
[wxWidgets.git] / src / generic / dirdlgg.cpp
index 72ede7a30c78c8261d0eb76225152f4331c0268f..a07fbd497e786483b84db914555cbd552cf51275 100644 (file)
@@ -58,7 +58,7 @@ static const int ID_GO_HOME = 1006;
 // ---------------------------------------------------------------------------
 
 /* Macro for avoiding #ifdefs when value have to be different depending on size of
-   device we display on
+   device we display on - take it from something like wxDesktopPolicy in the future
  */
 
 #if defined(__SMARTPHONE__)
@@ -100,7 +100,7 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title,
 
     wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
 
-    // Smartphone does not have buttons
+    // smart phones does not support or do not waste space for wxButtons
 #if defined(__SMARTPHONE__)
 
     wxMenu *dirMenu = new wxMenu;
@@ -204,7 +204,7 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title,
 
 #endif // !__SMARTPHONE__
 
-    m_dirCtrl->SetFocus();
+    m_input->SetFocus();
 
     SetAutoLayout( true );
     SetSizer( topsizer );
@@ -278,7 +278,13 @@ void wxGenericDirDialog::OnTreeSelected( wxTreeEvent &event )
     if (!m_dirCtrl)
         return;
 
-    wxDirItemData *data = (wxDirItemData*)m_dirCtrl->GetTreeCtrl()->GetItemData(event.GetItem());
+    wxTreeItemId item = event.GetItem();
+
+    wxDirItemData *data = NULL;
+
+    if(item.IsOk())
+        data = (wxDirItemData*)m_dirCtrl->GetTreeCtrl()->GetItemData(item);
+
     if (data)
        m_input->SetValue( data->m_path );
 };