X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/06414d99a7a77b1aa1aa9c89e0ed5c466eb5cce8..35bb3cb155917b4287fb2a3841bea22919a3d499:/src/mgl/window.cpp diff --git a/src/mgl/window.cpp b/src/mgl/window.cpp index 2c2fec1ed3..082e7dc7c8 100644 --- a/src/mgl/window.cpp +++ b/src/mgl/window.cpp @@ -184,7 +184,7 @@ static ibool MGLAPI wxWindowMouseHandler(window_t *wnd, event_t *e) { case EVT_MOUSEDOWN: // Change focus if the user clicks outside focused window: - if ( win->AcceptsFocus() && wxWindow::FindFocus() != win ) + if ( win->CanAcceptFocus() && wxWindow::FindFocus() != win ) win->SetFocus(); if ( e->message & EVT_DBLCLICK ) @@ -704,6 +704,11 @@ void wxWindowMGL::SetFocus() gs_activeFrame->GetEventHandler()->ProcessEvent(event); } + // notify the parent keeping track of focus for the kbd navigation + // purposes that we got it + wxChildFocusEvent eventFocus((wxWindow*)this); + GetEventHandler()->ProcessEvent(eventFocus); + wxFocusEvent event(wxEVT_SET_FOCUS, GetId()); event.SetEventObject(this); event.SetWindow((wxWindow*)oldFocusedWindow); @@ -1094,14 +1099,6 @@ void wxWindowMGL::GetTextExtent(const wxString& string, // painting // --------------------------------------------------------------------------- -void wxWindowMGL::Clear() -{ - wxClientDC dc((wxWindow *)this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - void wxWindowMGL::Refresh(bool eraseBack, const wxRect *rect) { if ( m_eraseBackground == -1 ) @@ -1220,6 +1217,6 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt) void wxWindowMGL::OnInternalIdle() { - if (wxUpdateUIEvent::CanUpdate(this)) + if (wxUpdateUIEvent::CanUpdate(this) && IsShown()) UpdateWindowUI(wxUPDATE_UI_FROMIDLE); }