Postpone EnsureVisible() to idle as this sometimes seems to be required, fixes #12480: wxDataViewCtrl::EnsureVisible does not make item visible in some

circumstances on GTK

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65562 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2010-09-17 19:07:02 +00:00
parent b5b208a179
commit 3f53dd3a2f
2 changed files with 12 additions and 0 deletions

View File

@@ -4548,6 +4548,16 @@ void wxDataViewCtrl::OnInternalIdle()
wxDataViewColumn *col = GetColumn( i );
col->OnInternalIdle();
}
if (m_ensureVisibleDefered.IsOk())
{
ExpandAncestors(m_ensureVisibleDefered);
GtkTreeIter iter;
iter.user_data = (gpointer) m_ensureVisibleDefered.GetID();
wxGtkTreePath path(m_internal->get_path( &iter ));
gtk_tree_view_scroll_to_cell( GTK_TREE_VIEW(m_treeview), path, NULL, false, 0.0, 0.0 );
m_ensureVisibleDefered = wxDataViewItem(0);
}
}
bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
@@ -4948,6 +4958,7 @@ void wxDataViewCtrl::UnselectAll()
void wxDataViewCtrl::EnsureVisible(const wxDataViewItem& item,
const wxDataViewColumn *WXUNUSED(column))
{
m_ensureVisibleDefered = item;
ExpandAncestors(item);
GtkTreeIter iter;