END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxPopupTransientWindow, wxPopupWindow)
-#ifdef __WXMSW__
+#if defined( __WXMSW__ ) || defined( __WXMAC__)
EVT_IDLE(wxPopupTransientWindow::OnIdle)
#endif
END_EVENT_TABLE()
m_focus = winFocus ? winFocus : this;
m_focus->SetFocus();
-#ifdef __WXMSW__
+#if defined( __WXMSW__ ) || defined( __WXMAC__)
// MSW doesn't allow to set focus to the popup window, but we need to
// subclass the window which has the focus, and not winFocus passed in or
// otherwise everything else breaks down
}
#endif
-#ifdef __WXMSW__
+#if defined( __WXMSW__ ) || defined( __WXMAC__)
if (!show && m_child && m_child->HasCapture())
{
m_child->ReleaseMouse();
}
#endif
-#ifdef __WXMSW__
+#if defined( __WXMSW__ ) || defined( __WXMAC__)
if (show && m_child)
{
// Assume that the mouse is outside the popup to begin with
return false;
}
-#ifdef __WXMSW__
+#if defined( __WXMSW__ ) || defined( __WXMAC__)
void wxPopupTransientWindow::OnIdle(wxIdleEvent& event)
{
event.Skip();
winUnder->ScreenToClient(&event2.m_x, &event2.m_y);
event2.SetEventObject(winUnder);
- wxPostEvent(winUnder, event2);
+ wxPostEvent(winUnder->GetEventHandler(), event2);
}
}
break;