diff --git a/Formula/wxmac.rb b/Formula/wxmac.rb index a5296dbbe9..c1e5bb78ec 100644 --- a/Formula/wxmac.rb +++ b/Formula/wxmac.rb @@ -15,6 +15,37 @@ class Wxmac < Formula depends_on "libpng" depends_on "libtiff" + + # Patches for 3.0.1 source release to reference the correct dispatch types + # regardless of whether built for OS X 10.10 or 10.9 (and earlier...) + # + # Patch derived from ticket comments and final changesets below: + # + # http://trac.wxwidgets.org/ticket/16329 + # http://trac.wxwidgets.org/changeset/76744 + # http://trac.wxwidgets.org/changeset/76743 + # + # NOTE: Revisit with next upstream release; changes already in upstream trunk + + # Patch Changeset 76744 + # http://trac.wxwidgets.org/changeset/76744 + patch :p3 do + url "http://trac.wxwidgets.org/changeset/76744?format=diff&new=7674" + sha1 "5cd1536d2494ef0b4d21f03799b0ac024572ae31" + end + + # Patch Changeset 76743 + # + # This is embedded because all but the last file is patchable with the changeset + # checked into the upstream trunk (webview_webkit.mm). The version of that file + # in trunk had changed enough that the patch cannot match any of the hunks to + # their corresponding line numbers in the 3.0.2 release train source distribution. + def patches + patches = { + :p1 => DATA, + } + end + def install # need to set with-macosx-version-min to avoid configure defaulting to 10.5 # need to enable universal binary build in order to build all x86_64 @@ -61,3 +92,120 @@ class Wxmac < Formula system "make install" end end + +__END__ + +diff -ur a/include/wx/defs.h b/include/wx/defs.h +--- a/include/wx/defs.h ++++ b/include/wx/defs.h +@@ -3169,13 +3169,20 @@ + DECLARE_WXCOCOA_OBJC_CLASS(UIEvent); + DECLARE_WXCOCOA_OBJC_CLASS(NSSet); + DECLARE_WXCOCOA_OBJC_CLASS(EAGLContext); ++DECLARE_WXCOCOA_OBJC_CLASS(UIWebView); + + typedef WX_UIWindow WXWindow; + typedef WX_UIView WXWidget; + typedef WX_EAGLContext WXGLContext; + typedef WX_NSString* WXGLPixelFormat; ++typedef WX_UIWebView OSXWebViewPtr; + +-#endif ++#endif ++ ++#if wxOSX_USE_COCOA_OR_CARBON ++DECLARE_WXCOCOA_OBJC_CLASS(WebView); ++typedef WX_WebView OSXWebViewPtr; ++#endif + + #endif /* __WXMAC__ */ + +diff -ur a/include/wx/html/webkit.h b/include/wx/html/webkit.h +--- a/include/wx/html/webkit.h ++++ b/include/wx/html/webkit.h +@@ -18,7 +18,6 @@ + #endif + + #include "wx/control.h" +-DECLARE_WXCOCOA_OBJC_CLASS(WebView); + + // ---------------------------------------------------------------------------- + // Web Kit Control +@@ -107,7 +106,7 @@ + wxString m_currentURL; + wxString m_pageTitle; + +- WX_WebView m_webView; ++ OSXWebViewPtr m_webView; + + // we may use this later to setup our own mouse events, + // so leave it in for now. +diff -ur a/include/wx/osx/webview_webkit.h b/include/wx/osx/webview_webkit.h +--- a/include/wx/osx/webview_webkit.h ++++ b/include/wx/osx/webview_webkit.h +@@ -158,7 +158,7 @@ + wxWindowID m_windowID; + wxString m_pageTitle; + +- wxObjCID m_webView; ++ OSXWebViewPtr m_webView; + + // we may use this later to setup our own mouse events, + // so leave it in for now. +diff -ur a/src/osx/webview_webkit.mm b/src/osx/webview_webkit.mm +--- a/src/osx/webview_webkit.mm ++++ b/src/osx/webview_webkit.mm +@@ -442,7 +442,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView goBack]; ++ [m_webView goBack]; + } + + void wxWebViewWebKit::GoForward() +@@ -450,7 +450,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView goForward]; ++ [m_webView goForward]; + } + + void wxWebViewWebKit::Reload(wxWebViewReloadFlags flags) +@@ -849,7 +849,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView cut:m_webView]; ++ [m_webView cut:m_webView]; + } + + void wxWebViewWebKit::Copy() +@@ -857,7 +857,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView copy:m_webView]; ++ [m_webView copy:m_webView]; + } + + void wxWebViewWebKit::Paste() +@@ -865,7 +865,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView paste:m_webView]; ++ [m_webView paste:m_webView]; + } + + void wxWebViewWebKit::DeleteSelection() +@@ -873,7 +873,7 @@ + if ( !m_webView ) + return; + +- [(WebView*)m_webView deleteSelection]; ++ [m_webView deleteSelection]; + } + + bool wxWebViewWebKit::HasSelection() const