X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6954a1e2c983321297c11050d380485a8f3c724d..66c71d8a3d5dff6759b941eed4762896a76e9642:/src/dfb/window.cpp diff --git a/src/dfb/window.cpp b/src/dfb/window.cpp index d07170da05..9e33f696c7 100644 --- a/src/dfb/window.cpp +++ b/src/dfb/window.cpp @@ -194,7 +194,8 @@ void wxWindowDFB::SetFocus() gs_focusedWindow = this; - if ( IsShownOnScreen() ) + if ( IsShownOnScreen() && + (!oldFocusedWindow || oldFocusedWindow->GetTLW() != m_tlw) ) { m_tlw->SetDfbFocus(); } @@ -674,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 @@ -757,7 +759,9 @@ void wxWindowDFB::PaintOverlays(const wxRect& rect) for ( wxDfbOverlaysList::const_iterator i = m_overlays->begin(); i != m_overlays->end(); ++i ) { - wxOverlayImpl *overlay = *i; + // FIXME: the cast is necessary for STL build where the iterator + // (incorrectly) returns void* and not wxOverlayImpl* + wxOverlayImpl *overlay = (wxOverlayImpl*) *i; wxRect orectOrig(overlay->GetRect()); wxRect orect(orectOrig);