]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix for crash when opening empty node
authorRobert Roebling <robert@roebling.de>
Fri, 20 Jul 2007 08:23:53 +0000 (08:23 +0000)
committerRobert Roebling <robert@roebling.de>
Fri, 20 Jul 2007 08:23:53 +0000 (08:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/dataview.cpp

index c16bb6cc6708faf5e60954d156b98b6737cd3fad..50618e6ebacf0f4359a69255176f303d67397069 100644 (file)
@@ -2312,6 +2312,9 @@ gboolean wxDataViewCtrlInternal::iter_children( GtkTreeIter *iter, GtkTreeIter *
         
     wxGtkTreeModelNode *parent_node = FindNode( parent );
     BuildBranch( parent_node );
+    
+    if (parent_node->GetChildren().GetCount() == 0)
+        return FALSE;
         
     wxGtkTreeModelNode *first_child_node = parent_node->GetChildren().Item( 0 );
     
@@ -2324,8 +2327,15 @@ gboolean wxDataViewCtrlInternal::iter_children( GtkTreeIter *iter, GtkTreeIter *
 gboolean wxDataViewCtrlInternal::iter_has_child( GtkTreeIter *iter )
 {
     wxDataViewItem item( (void*) iter->user_data );
+    bool res = m_wx_model->HasChildren( item );
+    
+    if (!res)
+        return FALSE;
+    
+    wxGtkTreeModelNode *node = FindNode( iter );
+    BuildBranch( node );
     
-    return m_wx_model->HasChildren( item );
+    return (node->GetChildren().GetCount() > 0);
 }
 
 gint wxDataViewCtrlInternal::iter_n_children( GtkTreeIter *iter )