- m_RowInfo[r].cont->SetPos(m_IndentLeft + m_ListmarkWidth, vpos);
- vpos += wxMax(m_RowInfo[r].cont->GetHeight(), m_RowInfo[r].mark->GetHeight());
+
+ const int base_mark = ComputeMaxBase( m_RowInfo[r].mark );
+ const int base_cont = ComputeMaxBase( m_RowInfo[r].cont );
+ const int adjust_mark = vpos + wxMax(base_cont-base_mark,0);
+ const int adjust_cont = vpos + wxMax(base_mark-base_cont,0);
+
+ m_RowInfo[r].mark->SetPos(m_IndentLeft, adjust_mark);
+ m_RowInfo[r].cont->SetPos(m_IndentLeft + m_ListmarkWidth, adjust_cont);
+
+ vpos = wxMax(adjust_mark + m_RowInfo[r].mark->GetHeight(),
+ adjust_cont + m_RowInfo[r].cont->GetHeight());