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
|
// FIXME_DFB: don't waste time rendering the area if it's fully covered
|
||||||
// by some children, go directly to rendering the children
|
// by some children, go directly to rendering the children
|
||||||
|
// (unless some child has HasTransparentBackground()=true!)
|
||||||
|
|
||||||
// NB: unconditionally send wxEraseEvent, because our implementation of
|
// NB: unconditionally send wxEraseEvent, because our implementation of
|
||||||
// wxWindow::Refresh() ignores the eraseBack argument
|
// wxWindow::Refresh() ignores the eraseBack argument
|
||||||
|
@@ -361,6 +361,11 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
|
|||||||
wxWindow * const parent = GetParent();
|
wxWindow * const parent = GetParent();
|
||||||
if ( HasTransparentBackground() && !UseBgCol() && parent )
|
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() );
|
wxASSERT( !IsTopLevel() );
|
||||||
|
|
||||||
wxPoint pos = GetPosition();
|
wxPoint pos = GetPosition();
|
||||||
@@ -383,6 +388,7 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
|
|||||||
|
|
||||||
// Restore DC logical origin
|
// Restore DC logical origin
|
||||||
dc.SetLogicalOrigin( org_x, org_y );
|
dc.SetLogicalOrigin( org_x, org_y );
|
||||||
|
#endif // !__WXDFB__
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user