Applied patch [ 1218833 ] [wxMSW] wxListBox optimisation for XP

Also removed temporary fix to hardwire listbox background colour


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34674 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2005-06-16 15:36:48 +00:00
parent 2ff53fd302
commit ce0e1aacbc
4 changed files with 20 additions and 4 deletions

View File

@ -151,6 +151,13 @@ protected:
virtual wxSize DoGetBestSize() const;
// under XP when using "transition effect for menus and tooltips" if we
// return true for WM_PRINTCLIENT here then it causes noticable slowdown
virtual bool MSWShouldPropagatePrintChild()
{
return false;
}
#if wxUSE_OWNER_DRAWN
// control items
wxListBoxItemsArray m_aItems;

View File

@ -391,6 +391,14 @@ public:
return false;
}
// some controls (e.g. wxListBox) need to set the return value themselves
//
// return true to let parent handle it if we don't, false otherwise
virtual bool MSWShouldPropagatePrintChild()
{
return true;
}
// Responds to colour changes: passes event on to children.
void OnSysColourChanged(wxSysColourChangedEvent& event);

View File

@ -174,10 +174,6 @@ bool wxListBox::Create(wxWindow *parent,
return false;
}
// Necessary to prevent scroll problems within a notebook with Windows
// effects enabled
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
// initialize the contents
for ( int i = 0; i < n; i++ )
{

View File

@ -4150,6 +4150,11 @@ bool wxWindowMSW::HandlePrintClient(WXHDC hDC)
if ( IsTopLevel() || InheritsBackgroundColour() )
return false;
// sometimes we don't want the parent to handle it at all, instead
// return whatever value this window wants
if ( !MSWShouldPropagatePrintChild() )
return MSWPrintChild(hDC, (wxWindow *)this);
for ( wxWindow *win = GetParent(); win; win = win->GetParent() )
{
if ( win->MSWPrintChild(hDC, (wxWindow *)this) )