// wxTopLevelWindowCocoa implementation
// ============================================================================
+wxTopLevelWindowCocoa *wxTopLevelWindowCocoa::sm_cocoaDeactivateWindow = NULL;
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowCocoa creation
// ----------------------------------------------------------------------------
wxTopLevelWindowCocoa::~wxTopLevelWindowCocoa()
{
+ wxASSERT(sm_cocoaDeactivateWindow!=this);
wxAutoNSAutoreleasePool pool;
DestroyChildren();
SetNSWindow(NULL);
}
+bool wxTopLevelWindowCocoa::Destroy()
+{
+ if(sm_cocoaDeactivateWindow==this)
+ {
+ sm_cocoaDeactivateWindow = NULL;
+ wxTopLevelWindowCocoa::CocoaDelegate_windowDidResignKey();
+ }
+ return wxTopLevelWindowBase::Destroy();
+}
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowCocoa Cocoa Specifics
// ----------------------------------------------------------------------------
[m_cocoaNSWindow setContentView:newView];
}
+/*static*/ void wxTopLevelWindowCocoa::DeactivatePendingWindow()
+{
+ if(sm_cocoaDeactivateWindow)
+ sm_cocoaDeactivateWindow->wxTopLevelWindowCocoa::CocoaDelegate_windowDidResignKey();
+ sm_cocoaDeactivateWindow = NULL;
+}
+
void wxTopLevelWindowCocoa::CocoaDelegate_windowDidBecomeKey(void)
{
+ DeactivatePendingWindow();
wxLogDebug("wxTopLevelWindowCocoa=%p::CocoaDelegate_windowDidBecomeKey",this);
wxActivateEvent event(wxEVT_ACTIVATE, TRUE, GetId());
event.SetEventObject(this);