support real transparency for controls that return HasTransparentBackground() in wxDFB
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -675,6 +675,7 @@ void wxWindowDFB::PaintWindow(const wxRect& rect)
|
||||
|
||||
// FIXME_DFB: don't waste time rendering the area if it's fully covered
|
||||
// by some children, go directly to rendering the children
|
||||
// (unless some child has HasTransparentBackground()=true!)
|
||||
|
||||
// NB: unconditionally send wxEraseEvent, because our implementation of
|
||||
// wxWindow::Refresh() ignores the eraseBack argument
|
||||
|
@@ -361,6 +361,11 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
|
||||
wxWindow * const parent = GetParent();
|
||||
if ( HasTransparentBackground() && !UseBgCol() && parent )
|
||||
{
|
||||
// DirectFB paints the parent first, then its child windows, so by
|
||||
// the time this code is called, parent's background was already
|
||||
// drawn and there's no point in (imperfectly!) duplicating the work
|
||||
// here:
|
||||
#ifndef __WXDFB__
|
||||
wxASSERT( !IsTopLevel() );
|
||||
|
||||
wxPoint pos = GetPosition();
|
||||
@@ -383,6 +388,7 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
|
||||
|
||||
// Restore DC logical origin
|
||||
dc.SetLogicalOrigin( org_x, org_y );
|
||||
#endif // !__WXDFB__
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user