#ifndef WX_PRECOMP
#include "wx/dcclient.h"
+ #include "wx/nonownedwnd.h"
#endif
#include "wx/caret.h"
if ( gs_mouseCapture == this )
ReleaseMouse();
-#warning "FIXME: what to do with gs_activeFrame here and elsewhere?"
-#if 0
- if (gs_activeFrame == this)
- {
- gs_activeFrame = NULL;
- // activate next frame in Z-order:
- if ( m_wnd->prev )
- {
- wxWindowDFB *win = (wxWindowDFB*)m_wnd->prev->userData;
- win->SetFocus();
- }
- else if ( m_wnd->next )
- {
- wxWindowDFB *win = (wxWindowDFB*)m_wnd->next->userData;
- win->SetFocus();
- }
- }
-#endif
-
if ( gs_focusedWindow == this )
DFBKillFocus();
gs_focusedWindow = this;
- if ( IsShownOnScreen() )
+ if ( IsShownOnScreen() &&
+ (!oldFocusedWindow || oldFocusedWindow->GetTLW() != m_tlw) )
{
m_tlw->SetDfbFocus();
}
// are hidden; when the TLW becomes visible, it will set the focus
// to use from wxTLW::Show()
- #warning "FIXME: implement in terms of DWET_{GOT,LOST}FOCUS"
- #warning "FIXME: keep this or not? not, think multiapp core"
-#if 0
- wxWindowDFB *active = wxGetTopLevelParent((wxWindow*)this);
- if ( !(m_windowStyle & wxPOPUP_WINDOW) && active != gs_activeFrame )
- {
- if ( gs_activeFrame )
- {
- wxActivateEvent event(wxEVT_ACTIVATE, false, gs_activeFrame->GetId());
- event.SetEventObject(gs_activeFrame);
- gs_activeFrame->GetEventHandler()->ProcessEvent(event);
- }
-
- gs_activeFrame = active;
- wxActivateEvent event(wxEVT_ACTIVATE, true, gs_activeFrame->GetId());
- event.SetEventObject(gs_activeFrame);
- gs_activeFrame->GetEventHandler()->ProcessEvent(event);
- }
-#endif
-
// notify the parent keeping track of focus for the kbd navigation
// purposes that we got it
wxChildFocusEvent eventFocus((wxWindow*)this);
// parent area at the place of this window (if hiding):
DoRefreshWindow();
-#warning "FIXME: all of this must be implemented for DFB"
-#if 0
- DFB_wmShowWindow(m_wnd, show);
-
- if (!show && gs_activeFrame == this)
- {
- // activate next frame in Z-order:
- if ( m_wnd->prev )
- {
- wxWindowDFB *win = (wxWindowDFB*)m_wnd->prev->userData;
- win->SetFocus();
- }
- else if ( m_wnd->next )
- {
- wxWindowDFB *win = (wxWindowDFB*)m_wnd->next->userData;
- win->SetFocus();
- }
- else
- {
- gs_activeFrame = NULL;
- }
- }
-#endif
-
return true;
}
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);