From 0ae51f62deaca848621da88e73d634ecace40054 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Thu, 11 Jun 2009 15:21:18 +0000 Subject: [PATCH] GTK: In virtual list mode, map first row to 1, not to 0 as this is reserved for an invalid item git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60997 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk/dataview.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 68a660db66..040ddc6e61 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -3417,8 +3417,8 @@ gboolean wxDataViewCtrlInternal::get_iter( GtkTreeIter *iter, GtkTreePath *path return FALSE; iter->stamp = m_gtk_model->stamp; - // user_data is just the index - iter->user_data = (gpointer) i; + // user_data is just the index +1 + iter->user_data = (gpointer) (i+1); return TRUE; } @@ -3469,8 +3469,8 @@ GtkTreePath *wxDataViewCtrlInternal::get_path( GtkTreeIter *iter ) if (m_wx_model->IsVirtualListModel()) { - // user_data is just the index - int i = (wxUIntPtr) iter->user_data; + // user_data is just the index +1 + int i = ( (wxUIntPtr) iter->user_data ) -1; gtk_tree_path_append_index (retval, i); } else @@ -3498,7 +3498,8 @@ gboolean wxDataViewCtrlInternal::iter_next( GtkTreeIter *iter ) { wxDataViewIndexListModel *wx_model = (wxDataViewIndexListModel*) m_wx_model; - int n = (wxUIntPtr) iter->user_data; + // user_data is just the index +1 + int n = ( (wxUIntPtr) iter->user_data ) -1; if (n == -1) return FALSE; @@ -3506,7 +3507,8 @@ gboolean wxDataViewCtrlInternal::iter_next( GtkTreeIter *iter ) if (n >= (int) wx_model->GetLastIndex()) return FALSE; - iter->user_data = (gpointer) ++n; + // user_data is just the index +1 (+2 because we need the next) + iter->user_data = (gpointer) (n+2); } else { @@ -3535,7 +3537,7 @@ gboolean wxDataViewCtrlInternal::iter_children( GtkTreeIter *iter, GtkTreeIter * return FALSE; iter->stamp = m_gtk_model->stamp; - iter->user_data = (gpointer) -1; + iter->user_data = (gpointer) 0; return TRUE; } @@ -3637,7 +3639,8 @@ gboolean wxDataViewCtrlInternal::iter_nth_child( GtkTreeIter *iter, GtkTreeIter return FALSE; iter->stamp = m_gtk_model->stamp; - iter->user_data = (gpointer) n; + // user_data is just the index +1 + iter->user_data = (gpointer) (n-1); return TRUE; } -- 2.45.2