]> git.saurik.com Git - wxWidgets.git/blobdiff - src/dfb/window.cpp
use iterators instead of c_str()
[wxWidgets.git] / src / dfb / window.cpp
index d07170da05b7f7b99bb69234121d0c7e1ec6e879..9e33f696c7773cccabc2795328877d36d7e4f756 100644 (file)
@@ -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);