#ifdef __WXMSW__
// On XP with themes enabled the GetViewRect used in GetListSize to
// determine the space needed for the list view will incorrectly return
- // (0,0,0,0) the first time. So send a pending event so OnSize wiull be
+ // (0,0,0,0) the first time. So send a pending event so OnSize will be
// called again after the window is ready to go. Technically we don't
// need to do this on non-XP windows, but if things are already sized
// correctly then nothing changes and so there is no harm.
break;
}
- m_list->Move(posList.x, posList.y);
+ // arrange the icons before calling SetClientSize(), otherwise it wouldn't
+ // account for the scrollbars the list control might need and, at least
+ // under MSW, we'd finish with an ugly looking list control with both
+ // vertical and horizontal scrollbar (with one of them being added because
+ // the other one is not accounted for in client size computations)
+ m_list->Arrange();
+ if ( m_list->GetPosition() != posList )
+ m_list->Move(posList.x, posList.y);
m_list->SetClientSize(sizeList.x, sizeList.y);
#if wxUSE_LINE_IN_LISTBOOK
wxWindow *page = m_pages[m_selection];
wxCHECK_RET( page, _T("NULL page in wxListbook?") );
page->SetSize(GetPageRect());
- }
+ }
}
wxSize wxListbook::CalcSizeFromPage(const wxSize& sizePage) const