X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/237077b5015fdf89279da494abfc18a4bb73b023..be103d4a3d79b507fa514587d792e8bdcfa89a7c:/src/generic/listctrl.cpp?ds=sidebyside diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 4cd96c9e6a..3804bf0e6f 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -4272,7 +4272,6 @@ void wxGenericListCtrl::Init() m_mainWin = NULL; m_headerWin = NULL; - m_headerHeight = wxRendererNative::Get().GetHeaderButtonHeight(this); } wxGenericListCtrl::~wxGenericListCtrl() @@ -4299,7 +4298,11 @@ void wxGenericListCtrl::CreateOrDestroyHeaderWindowAsNeeded() ( this, wxID_ANY, m_mainWin, wxPoint(0,0), - wxSize(GetClientSize().x, m_headerHeight), + wxSize + ( + GetClientSize().x, + wxRendererNative::Get().GetHeaderButtonHeight(this) + ), wxTAB_TRAVERSAL ); @@ -4310,11 +4313,6 @@ void wxGenericListCtrl::CreateOrDestroyHeaderWindowAsNeeded() #endif GetSizer()->Prepend( m_headerWin, 0, wxGROW ); -#ifdef __WXOSX__ - // TODO not tested under other platforms, remove the platform condition if - // it works on those as well - GetSizer()->SetItemMinSize( m_headerWin, wxSize(-1,m_headerHeight) ); -#endif } else { @@ -4446,6 +4444,10 @@ void wxGenericListCtrl::SetSingleStyle( long style, bool add ) void wxGenericListCtrl::SetWindowStyleFlag( long flag ) { + // update the window style first so that the header is created or destroyed + // corresponding to the new style + wxWindow::SetWindowStyleFlag( flag ); + if (m_mainWin) { // m_mainWin->DeleteEverything(); wxMSW doesn't do that @@ -4454,8 +4456,6 @@ void wxGenericListCtrl::SetWindowStyleFlag( long flag ) GetSizer()->Layout(); } - - wxWindow::SetWindowStyleFlag( flag ); } bool wxGenericListCtrl::GetColumn(int col, wxListItem &item) const @@ -4592,7 +4592,7 @@ bool wxGenericListCtrl::GetSubItemRect(long item, return false; if ( m_mainWin->HasHeader() ) - rect.y += m_headerHeight + 1; + rect.y += m_headerWin->GetSize().y + 1; return true; }