X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/33ac7e6f01acbac1cff0ad400d8ea7f0bfd0a62f..87df17a11b0017d31c09f767bd921abb27193bee:/src/msw/listbox.cpp diff --git a/src/msw/listbox.cpp b/src/msw/listbox.cpp index 408344a7b9..e466ae97ee 100644 --- a/src/msw/listbox.cpp +++ b/src/msw/listbox.cpp @@ -160,6 +160,8 @@ bool wxListBox::Create(wxWindow *parent, wxASSERT_MSG( !(style & wxLB_MULTIPLE) || !(style & wxLB_EXTENDED), _T("only one of listbox selection modes can be specified") ); + if ( m_windowStyle & wxCLIP_SIBLINGS ) + wstyle |= WS_CLIPSIBLINGS; if (m_windowStyle & wxLB_MULTIPLE) wstyle |= LBS_MULTIPLESEL; @@ -661,7 +663,10 @@ wxSize wxListBox::DoGetBestSize() const wListbox += 3*cx; - int hListbox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)*(wxMax(m_noItems, 7)); + // don't make the listbox too tall (limit height to 10 items) but don't + // make it too small neither + int hListbox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)* + wxMin(wxMax(m_noItems, 3), 10); return wxSize(wListbox, hListbox); } @@ -771,14 +776,13 @@ bool wxListBox::MSWOnDraw(WXDRAWITEMSTRUCT *item) wxListBoxItem *pItem = (wxListBoxItem *)data; - wxDC dc; - dc.SetHDC((WXHDC)pStruct->hDC, FALSE); + wxDCTemp dc((WXHDC)pStruct->hDC); wxRect rect(wxPoint(pStruct->rcItem.left, pStruct->rcItem.top), wxPoint(pStruct->rcItem.right, pStruct->rcItem.bottom)); return pItem->OnDrawItem(dc, rect, - (wxOwnerDrawn::wxODAction)pStruct->itemAction, - (wxOwnerDrawn::wxODStatus)pStruct->itemState); + (wxOwnerDrawn::wxODAction)pStruct->itemAction, + (wxOwnerDrawn::wxODStatus)pStruct->itemState); } #endif