+ // Needed for popup window since the firstResponder
+ // (focus in wx) doesn't change when this
+ // TLW becomes inactive.
+ wxFocusEvent event( wxEVT_KILL_FOCUS, wxpeer->GetId());
+ event.SetEventObject(wxpeer);
+ wxpeer->HandleWindowEvent(event);
+ }
+ }
+}
+
+- (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)anObject
+{
+ wxUnusedVar(sender);
+
+ if ([anObject isKindOfClass:[wxNSTextField class]])
+ {
+ wxNSTextField* tf = (wxNSTextField*) anObject;
+ wxNSTextFieldEditor* editor = [tf fieldEditor];
+ if ( editor == nil )
+ {
+ editor = [[wxNSTextFieldEditor alloc] init];
+ [editor setFieldEditor:YES];
+ [tf setFieldEditor:editor];
+ }
+ return editor;
+ }
+
+ return nil;
+}
+
+- (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame
+{
+ wxNonOwnedWindowCocoaImpl* windowimpl = [(wxNSWindow*)window implementation];
+ if ( windowimpl )
+ {
+ wxNonOwnedWindow* wxpeer = windowimpl->GetWXPeer();
+ wxMaximizeEvent event(wxpeer->GetId());
+ event.SetEventObject(wxpeer);
+ return !wxpeer->HandleWindowEvent(event);