diff --git a/include/wx/html/webkit.h b/include/wx/html/webkit.h
index 0898182601..30179440f4 100644
--- a/include/wx/html/webkit.h
+++ b/include/wx/html/webkit.h
@@ -107,7 +107,11 @@ private:
wxString m_pageTitle;
OSXWebViewPtr m_webView;
-
+
+ WX_NSObject m_frameLoadMonitor;
+ WX_NSObject m_policyDelegate;
+ WX_NSObject m_UIDelegate;
+
// we may use this later to setup our own mouse events,
// so leave it in for now.
void* m_webKitCtrlEventHandler;
diff --git a/src/html/htmlctrl/webkit/webkit.mm b/src/html/htmlctrl/webkit/webkit.mm
index 0fb20442c6..5f581671b0 100644
--- a/src/html/htmlctrl/webkit/webkit.mm
+++ b/src/html/htmlctrl/webkit/webkit.mm
@@ -206,38 +206,39 @@ bool wxWebKitCtrl::Create(wxWindow *parent,
// Register event listener interfaces
+
MyFrameLoadMonitor* myFrameLoadMonitor = [[MyFrameLoadMonitor alloc] initWithWxWindow: this];
[m_webView setFrameLoadDelegate:myFrameLoadMonitor];
-
+ m_frameLoadMonitor = myFrameLoadMonitor;
+
// this is used to veto page loads, etc.
MyPolicyDelegate* myPolicyDelegate = [[MyPolicyDelegate alloc] initWithWxWindow: this];
[m_webView setPolicyDelegate:myPolicyDelegate];
+ m_policyDelegate = myPolicyDelegate;
// this is used to provide printing support for JavaScript
MyUIDelegate* myUIDelegate = [[MyUIDelegate alloc] initWithWxWindow: this];
[m_webView setUIDelegate:myUIDelegate];
-
+ m_UIDelegate = myUIDelegate;
+
LoadURL(m_currentURL);
return true;
}
wxWebKitCtrl::~wxWebKitCtrl()
{
- MyFrameLoadMonitor* myFrameLoadMonitor = [m_webView frameLoadDelegate];
- MyPolicyDelegate* myPolicyDelegate = [m_webView policyDelegate];
- MyUIDelegate* myUIDelegate = [m_webView UIDelegate];
[m_webView setFrameLoadDelegate: nil];
[m_webView setPolicyDelegate: nil];
[m_webView setUIDelegate: nil];
- if (myFrameLoadMonitor)
- [myFrameLoadMonitor release];
+ if (m_frameLoadMonitor)
+ [m_frameLoadMonitor release];
- if (myPolicyDelegate)
- [myPolicyDelegate release];
+ if (m_policyDelegate)
+ [m_policyDelegate release];
- if (myUIDelegate)
- [myUIDelegate release];
+ if (m_UIDelegate)
+ [m_UIDelegate release];
}
// ----------------------------------------------------------------------------