From c75400ea2210374c6ef36f3b02b1e49c20f3ab54 Mon Sep 17 00:00:00 2001 From: Steve Lamerton Date: Sun, 7 Aug 2011 09:19:16 +0000 Subject: [PATCH] Remove the WebView - wxWebViewWebKit map as our policy delegates already held a pointer to the control. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/SOC2011_WEBVIEW@68577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/webview_webkit.mm | 45 ++++++++++++++------------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/src/osx/webview_webkit.mm b/src/osx/webview_webkit.mm index ac2838319c..3c20abad54 100644 --- a/src/osx/webview_webkit.mm +++ b/src/osx/webview_webkit.mm @@ -33,10 +33,6 @@ #include -// FIXME: find cleaner way to find the wxWidgets ID of a webview than this hack -#include -std::map wx_webviewctrls; - #define DEBUG_WEBKIT_SIZING 0 // ---------------------------------------------------------------------------- @@ -355,8 +351,6 @@ bool wxWebViewWebKit::Create(wxWindow *parent, m_peer = new wxWidgetCocoaImpl( this, m_webView ); #endif - wx_webviewctrls[m_webView] = this; - MacPostControlCreate(pos, size); #if wxOSX_USE_CARBON @@ -998,20 +992,18 @@ void wxWebViewWebKit::Redo() - (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame { - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = true; + webKitWindow->m_busy = true; } - (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame { - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = true; + webKitWindow->m_busy = true; if (webKitWindow && frame == [sender mainFrame]){ NSString *url = [[[[frame dataSource] request] URL] absoluteString]; wxString target = wxStringWithNSString([frame name]); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATED, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), target, false); @@ -1022,15 +1014,14 @@ void wxWebViewWebKit::Redo() - (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame { - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = false; + webKitWindow->m_busy = false; if (webKitWindow && frame == [sender mainFrame]){ NSString *url = [[[[frame dataSource] request] URL] absoluteString]; wxString target = wxStringWithNSString([frame name]); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_LOADED, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), target, false); @@ -1116,8 +1107,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) - (void)webView:(WebView *)sender didFailLoadWithError:(NSError*) error forFrame:(WebFrame *)frame { - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = false; + webKitWindow->m_busy = false; if (webKitWindow && frame == [sender mainFrame]){ NSString *url = [[[[frame dataSource] request] URL] absoluteString]; @@ -1125,7 +1115,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) wxWebNavigationError type; wxString description = nsErrorToWxHtmlError(error, &type); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), wxEmptyString, false); thisEvent.SetString(description); @@ -1142,8 +1132,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) didFailProvisionalLoadWithError:(NSError*)error forFrame:(WebFrame *)frame { - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = false; + webKitWindow->m_busy = false; if (webKitWindow && frame == [sender mainFrame]){ NSString *url = [[[[frame provisionalDataSource] request] URL] @@ -1152,7 +1141,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) wxWebNavigationError type; wxString description = nsErrorToWxHtmlError(error, &type); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_ERROR, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), wxEmptyString, false); thisEvent.SetString(description); @@ -1168,8 +1157,8 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) { wxString target = wxStringWithNSString([frame name]); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_TITLE_CHANGED, - wx_webviewctrls[sender]->GetId(), - wx_webviewctrls[sender]->GetCurrentURL(), + webKitWindow->GetId(), + webKitWindow->GetCurrentURL(), target, true); thisEvent.SetString(wxStringWithNSString(title)); @@ -1196,12 +1185,11 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) { wxUnusedVar(frame); - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); - wx_webviewctrls[sender]->m_busy = true; + webKitWindow->m_busy = true; NSString *url = [[request URL] absoluteString]; wxString target = wxStringWithNSString([frame name]); wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NAVIGATING, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), target, true); if (webKitWindow && webKitWindow->GetEventHandler()) @@ -1209,7 +1197,7 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) if (thisEvent.IsVetoed()) { - wx_webviewctrls[sender]->m_busy = false; + webKitWindow->m_busy = false; [listener ignore]; } else @@ -1225,11 +1213,10 @@ wxString nsErrorToWxHtmlError(NSError* error, wxWebNavigationError* out) decisionListener:(id < WebPolicyDecisionListener >)listener { wxUnusedVar(actionInformation); - - wxASSERT(wx_webviewctrls.find(sender) != wx_webviewctrls.end()); + NSString *url = [[request URL] absoluteString]; wxWebNavigationEvent thisEvent(wxEVT_COMMAND_WEB_VIEW_NEWWINDOW, - wx_webviewctrls[sender]->GetId(), + webKitWindow->GetId(), wxStringWithNSString( url ), "", true); if (webKitWindow && webKitWindow->GetEventHandler()) -- 2.45.2