// contains the tag for the content (is different for password and non-password controls)
OSType m_valueTag ;
+ WXEVENTHANDLERREF m_macTextCtrlEventHandler ;
public :
ControlEditTextSelectionRec m_selection ;
};
const wxString& name = wxFrameNameStr);
virtual ~wxTopLevelWindowMac();
+
+ virtual bool Destroy();
virtual wxPoint GetClientAreaOrigin() const;
-#if __WXOSX_CARBON__
+#if wxOSX_USE_CARBON
#include "wx/osx/carbon/uma.h"
#endif
wxWebKitCtrl::~wxWebKitCtrl()
{
-
+ MyFrameLoadMonitor* myFrameLoadMonitor = [m_webView frameLoadDelegate];
+ MyPolicyDelegate* myPolicyDelegate = [m_webView policyDelegate];
+ [m_webView setFrameLoadDelegate: nil];
+ [m_webView setPolicyDelegate: nil];
+
+ if (myFrameLoadMonitor)
+ [myFrameLoadMonitor release];
+
+ if (myPolicyDelegate)
+ [myPolicyDelegate release];
}
// ----------------------------------------------------------------------------
{
::InstallControlEventHandler( m_controlRef , GetwxMacUnicodeTextControlEventHandlerUPP(),
GetEventTypeCount(unicodeTextControlEventList), unicodeTextControlEventList, this,
- NULL);
+ (EventHandlerRef*) &m_macTextCtrlEventHandler);
}
wxMacUnicodeTextControl::~wxMacUnicodeTextControl()
{
+ ::RemoveEventHandler((EventHandlerRef) m_macTextCtrlEventHandler);
}
void wxMacUnicodeTextControl::VisibilityChanged(bool shown)
{
}
+bool wxTopLevelWindowMac::Destroy()
+{
+ // NB: this will get called during destruction if we don't do it now,
+ // and may fire a kill focus event on a control being destroyed
+#if wxOSX_USE_CARBON
+ if (m_nowpeer->GetWXWindow())
+ ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() );
+#endif
+ return wxTopLevelWindowBase::Destroy();
+}
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowMac maximize/minimize