using the base class wxHAS_NATIVE_ENABLED_MANAGEMENT in cocoa disabling/enabling child windows, fixes #16232, fixes #15495

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2014-05-17 19:14:21 +00:00
parent c13a63a26a
commit 91f25e0bbd
2 changed files with 11 additions and 1 deletions

View File

@@ -264,6 +264,7 @@ public :
void RestoreWindowLevel(); void RestoreWindowLevel();
static WX_NSResponder GetNextFirstResponder() ; static WX_NSResponder GetNextFirstResponder() ;
static WX_NSResponder GetFormerFirstResponder() ;
protected : protected :
CGWindowLevel m_macWindowLevel; CGWindowLevel m_macWindowLevel;
WXWindow m_macWindow; WXWindow m_macWindow;

View File

@@ -158,6 +158,7 @@ static bool IsUsingFullScreenApi(WXWindow macWindow)
// //
static NSResponder* s_nextFirstResponder = NULL; static NSResponder* s_nextFirstResponder = NULL;
static NSResponder* s_formerFirstResponder = NULL;
@interface wxNSWindow : NSWindow @interface wxNSWindow : NSWindow
{ {
@@ -223,9 +224,13 @@ static NSResponder* s_nextFirstResponder = NULL;
- (BOOL)makeFirstResponder:(NSResponder *)aResponder - (BOOL)makeFirstResponder:(NSResponder *)aResponder
{ {
NSResponder* tempFormer = s_formerFirstResponder;
NSResponder* tempNext = s_nextFirstResponder;
s_nextFirstResponder = aResponder; s_nextFirstResponder = aResponder;
s_formerFirstResponder = [[NSApp keyWindow] firstResponder];
BOOL retval = [super makeFirstResponder:aResponder]; BOOL retval = [super makeFirstResponder:aResponder];
s_nextFirstResponder = nil; s_nextFirstResponder = tempNext;
s_formerFirstResponder = tempFormer;
return retval; return retval;
} }
@@ -1122,6 +1127,10 @@ WX_NSResponder wxNonOwnedWindowCocoaImpl::GetNextFirstResponder()
return s_nextFirstResponder; return s_nextFirstResponder;
} }
WX_NSResponder wxNonOwnedWindowCocoaImpl::GetFormerFirstResponder()
{
return s_formerFirstResponder;
}
// //
// //