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;
|
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
|
#if wxUSE_OWNER_DRAWN
|
||||||
// control items
|
// control items
|
||||||
wxListBoxItemsArray m_aItems;
|
wxListBoxItemsArray m_aItems;
|
||||||
|
@ -391,6 +391,14 @@ public:
|
|||||||
return false;
|
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.
|
// Responds to colour changes: passes event on to children.
|
||||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||||
|
@ -174,10 +174,6 @@ bool wxListBox::Create(wxWindow *parent,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Necessary to prevent scroll problems within a notebook with Windows
|
|
||||||
// effects enabled
|
|
||||||
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
|
|
||||||
|
|
||||||
// initialize the contents
|
// initialize the contents
|
||||||
for ( int i = 0; i < n; i++ )
|
for ( int i = 0; i < n; i++ )
|
||||||
{
|
{
|
||||||
|
@ -4150,6 +4150,11 @@ bool wxWindowMSW::HandlePrintClient(WXHDC hDC)
|
|||||||
if ( IsTopLevel() || InheritsBackgroundColour() )
|
if ( IsTopLevel() || InheritsBackgroundColour() )
|
||||||
return false;
|
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() )
|
for ( wxWindow *win = GetParent(); win; win = win->GetParent() )
|
||||||
{
|
{
|
||||||
if ( win->MSWPrintChild(hDC, (wxWindow *)this) )
|
if ( win->MSWPrintChild(hDC, (wxWindow *)this) )
|
||||||
|
Loading…
Reference in New Issue
Block a user