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:
parent
2ff53fd302
commit
ce0e1aacbc
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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++ )
|
||||
{
|
||||
|
@ -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) )
|
||||
|
Loading…
Reference in New Issue
Block a user