gtk_tree_selection_unselect_all( selection );
+ wxDataViewItem last_parent;
+
size_t i;
for (i = 0; i < sel.GetCount(); i++)
{
+ wxDataViewItem item = sel[i];
+ wxDataViewItem parent = GetModel()->GetParent( item );
+ if (parent)
+ {
+ if (parent != last_parent)
+ ExpandAncestors(item);
+ }
+ last_parent = parent;
+
GtkTreeIter iter;
iter.stamp = m_internal->GetGtkModel()->stamp;
- iter.user_data = (gpointer) sel[i].GetID();
+ iter.user_data = (gpointer) item.GetID();
gtk_tree_selection_select_iter( selection, &iter );
}
void wxDataViewCtrl::Select( const wxDataViewItem & item )
{
+ ExpandAncestors(item);
+
GtkDisableSelectionEvents();
GtkTreeSelection *selection = gtk_tree_view_get_selection( GTK_TREE_VIEW(m_treeview) );
void wxDataViewCtrl::EnsureVisible(const wxDataViewItem& item,
const wxDataViewColumn *WXUNUSED(column))
{
+ ExpandAncestors(item);
+
GtkTreeIter iter;
iter.user_data = (gpointer) item.GetID();
GtkTreePath *path = m_internal->get_path( &iter );