}
#endif
- if (wxWindowIsVisible(xwindow))
+ XWindowAttributes wa;
+ XGetWindowAttributes(wxGlobalDisplay(), xwindow, &wa);
+
+ if (wa.map_state == IsViewable)
{
wxLogTrace( wxT("focus"), wxT("wxWindowX11::SetFocus: %s"), GetClassInfo()->GetClassName());
// XSetInputFocus( wxGlobalDisplay(), xwindow, RevertToParent, CurrentTime );
// Update invalidated regions.
Update();
- // This calls the UI-update mechanism (querying windows for
- // menu/toolbar/control state information)
- if (wxUpdateUIEvent::CanUpdate((wxWindow*) this) && IsShownOnScreen())
- UpdateWindowUI(wxUPDATE_UI_FROMIDLE);
+ wxWindowBase::OnInternalIdle();
// Set the input focus if couldn't do it before
if (m_needsInputFocus)