Added support for delayed deactivation of windows (for MDI)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
0063c16999
commit
245f35816d
@ -67,6 +67,7 @@ public:
|
||||
// implementation from now on
|
||||
// --------------------------
|
||||
|
||||
static void MacDelayedDeactivation(long timestamp);
|
||||
virtual void MacCreateRealWindow( const wxString& title,
|
||||
const wxPoint& pos,
|
||||
const wxSize& size,
|
||||
@ -116,6 +117,7 @@ protected:
|
||||
bool m_macNeedsErasing ;
|
||||
|
||||
static WXWindow s_macWindowInUpdate ;
|
||||
static wxTopLevelWindowMac *s_macDeactivateWindow;
|
||||
private :
|
||||
#if TARGET_CARBON
|
||||
WXEVENTHANDLERREF m_macEventHandler ;
|
||||
|
@ -439,6 +439,7 @@ void wxRemoveMacWindowAssociation(wxTopLevelWindowMac *win)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
WXHWND wxTopLevelWindowMac::s_macWindowInUpdate = NULL;
|
||||
wxTopLevelWindowMac *wxTopLevelWindowMac::s_macDeactivateWindow = NULL;
|
||||
|
||||
void wxTopLevelWindowMac::Init()
|
||||
{
|
||||
@ -916,8 +917,21 @@ void wxTopLevelWindowMac::MacMouseMoved( WXEVENTREF ev , short part)
|
||||
|
||||
#endif
|
||||
|
||||
void wxTopLevelWindowMac::MacDelayedDeactivation(long timestamp)
|
||||
{
|
||||
if(s_macDeactivateWindow)
|
||||
{
|
||||
wxLogDebug("Doing delayed deactivation of %p",s_macDeactivateWindow);
|
||||
s_macDeactivateWindow->MacActivate(timestamp, false);
|
||||
}
|
||||
}
|
||||
|
||||
void wxTopLevelWindowMac::MacActivate( long timestamp , bool inIsActivating )
|
||||
{
|
||||
wxLogDebug("TopLevel=%p::MacActivate",this);
|
||||
if(s_macDeactivateWindow==this)
|
||||
s_macDeactivateWindow=NULL;
|
||||
MacDelayedDeactivation(timestamp);
|
||||
wxActivateEvent event(wxEVT_ACTIVATE, inIsActivating , m_windowId);
|
||||
event.m_timeStamp = timestamp ;
|
||||
event.SetEventObject(this);
|
||||
|
@ -439,6 +439,7 @@ void wxRemoveMacWindowAssociation(wxTopLevelWindowMac *win)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
WXHWND wxTopLevelWindowMac::s_macWindowInUpdate = NULL;
|
||||
wxTopLevelWindowMac *wxTopLevelWindowMac::s_macDeactivateWindow = NULL;
|
||||
|
||||
void wxTopLevelWindowMac::Init()
|
||||
{
|
||||
@ -916,8 +917,21 @@ void wxTopLevelWindowMac::MacMouseMoved( WXEVENTREF ev , short part)
|
||||
|
||||
#endif
|
||||
|
||||
void wxTopLevelWindowMac::MacDelayedDeactivation(long timestamp)
|
||||
{
|
||||
if(s_macDeactivateWindow)
|
||||
{
|
||||
wxLogDebug("Doing delayed deactivation of %p",s_macDeactivateWindow);
|
||||
s_macDeactivateWindow->MacActivate(timestamp, false);
|
||||
}
|
||||
}
|
||||
|
||||
void wxTopLevelWindowMac::MacActivate( long timestamp , bool inIsActivating )
|
||||
{
|
||||
wxLogDebug("TopLevel=%p::MacActivate",this);
|
||||
if(s_macDeactivateWindow==this)
|
||||
s_macDeactivateWindow=NULL;
|
||||
MacDelayedDeactivation(timestamp);
|
||||
wxActivateEvent event(wxEVT_ACTIVATE, inIsActivating , m_windowId);
|
||||
event.m_timeStamp = timestamp ;
|
||||
event.SetEventObject(this);
|
||||
|
Loading…
Reference in New Issue
Block a user