X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/28117f242619e904d18c2d8f1a7b9fa0783efcb6..69659fd770f615210efac4b4fa741b3ad6223616:/src/univ/winuniv.cpp diff --git a/src/univ/winuniv.cpp b/src/univ/winuniv.cpp index c5f8c6e654..2e3dbcd844 100644 --- a/src/univ/winuniv.cpp +++ b/src/univ/winuniv.cpp @@ -359,8 +359,13 @@ bool wxWindow::DoDrawBackground(wxDC& dc) rect.height = size.y; wxWindow * const parent = GetParent(); - if ( HasTransparentBackground() && 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() ); 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 { @@ -1416,10 +1422,10 @@ void wxWindow::OnChar(wxKeyEvent& event) if ( !event.HasModifiers() && event.GetKeyCode() == WXK_RETURN ) { wxTopLevelWindow * - tlw = wxDynamicCast(wxTopLevelWindow *, wxGetTopLevelParent()); + tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow); if ( tlw ) { - wxButton *btn = wxDynamicCast(wxButton *, tlw->GetDefaultItem()); + wxButton *btn = wxDynamicCast(tlw->GetDefaultItem(), wxButton); if ( btn ) { wxCommandEvent evt(wxEVT_COMMAND_BUTTON_CLICKED, btn->GetId());