diff --git a/include/wx/cocoa/NSWindow.h b/include/wx/cocoa/NSWindow.h index c25113a98e..cc62cb2ad1 100644 --- a/include/wx/cocoa/NSWindow.h +++ b/include/wx/cocoa/NSWindow.h @@ -30,6 +30,8 @@ class wxCocoaNSWindow public: void AssociateNSWindow(WX_NSWindow cocoaNSWindow); void DisassociateNSWindow(WX_NSWindow cocoaNSWindow); + virtual bool Cocoa_canBecomeKeyWindow(bool &canBecome) + { return false; } virtual bool Cocoa_canBecomeMainWindow(bool &canBecome) { return false; } virtual bool CocoaDelegate_windowShouldClose(void) = 0; diff --git a/src/cocoa/NSWindow.mm b/src/cocoa/NSWindow.mm index c2df1cd5e6..ebb81b92b0 100644 --- a/src/cocoa/NSWindow.mm +++ b/src/cocoa/NSWindow.mm @@ -193,12 +193,22 @@ wxMenuBar* wxCocoaNSWindow::GetAppMenuBar(wxCocoaNSWindow *win) { } +- (BOOL)canBecomeKeyWindow; - (BOOL)canBecomeMainWindow; @end // wxPoserNSwindow WX_IMPLEMENT_POSER(wxPoserNSWindow); @implementation wxPoserNSWindow : NSWindow +- (BOOL)canBecomeKeyWindow +{ + bool canBecome = false; + wxCocoaNSWindow *tlw = wxCocoaNSWindow::GetFromCocoa(self); + if(!tlw || !tlw->Cocoa_canBecomeKeyWindow(canBecome)) + canBecome = [super canBecomeKeyWindow]; + return canBecome; +} + - (BOOL)canBecomeMainWindow { bool canBecome = false;