Using the base class wxHAS_NATIVE_ENABLED_MANAGEMENT in Cocoa

disabling/enabling child windows

Fixes #16232, fixes #15495.

(this is a backport of 91f25e0 from master)
This commit is contained in:
Stefan Csomor
2014-05-17 19:14:21 +00:00
committed by Dimitri Schoolwerth
parent 97eb03c9a7
commit 8d2956100f
2 changed files with 11 additions and 1 deletions

View File

@@ -260,6 +260,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

@@ -145,6 +145,7 @@ bool shouldHandleSelector(SEL selector)
// //
static NSResponder* s_nextFirstResponder = NULL; static NSResponder* s_nextFirstResponder = NULL;
static NSResponder* s_formerFirstResponder = NULL;
@interface wxNSWindow : NSWindow @interface wxNSWindow : NSWindow
{ {
@@ -210,9 +211,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;
} }
@@ -1066,6 +1071,10 @@ WX_NSResponder wxNonOwnedWindowCocoaImpl::GetNextFirstResponder()
return s_nextFirstResponder; return s_nextFirstResponder;
} }
WX_NSResponder wxNonOwnedWindowCocoaImpl::GetFormerFirstResponder()
{
return s_formerFirstResponder;
}
// //
// //