+ // as for wx the deactivation also means losing focus we
+ // must trigger this manually
+ [window makeFirstResponder:nil];
+
+ // TODO Remove if no problems arise with Popup Windows
+#if 0
+ // 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);
+#endif
+ }
+ }
+}
+
+- (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];
+ [editor release];
+ }
+ return editor;
+ }
+ else if ([anObject isKindOfClass:[wxNSComboBox class]])
+ {
+ wxNSComboBox * cb = (wxNSComboBox*) anObject;
+ wxNSTextFieldEditor* editor = [cb fieldEditor];
+ if ( editor == nil )
+ {
+ editor = [[wxNSTextFieldEditor alloc] init];
+ [editor setFieldEditor:YES];
+ [cb setFieldEditor:editor];
+ [editor release];
+ }
+ return editor;
+ }
+
+ return nil;
+}
+
+- (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame
+{
+ wxUnusedVar(newFrame);
+ wxNonOwnedWindowCocoaImpl* windowimpl = [window WX_implementation];
+ if ( windowimpl )
+ {
+ wxNonOwnedWindow* wxpeer = windowimpl->GetWXPeer();
+ wxMaximizeEvent event(wxpeer->GetId());
+ event.SetEventObject(wxpeer);
+ return !wxpeer->HandleWindowEvent(event);