From 82bf41a054e6444b2cbf53cbe12b93e52389a981 Mon Sep 17 00:00:00 2001 From: Ryan Wilhm Date: Tue, 12 Aug 2014 07:19:03 -0500 Subject: [PATCH] wxmac: upstream patches for OSX 10.10. Interim backward-compatible fixes for wxmac 3.0.1 for OS X 10.10 This includes all of the change sets from the upstream wxwidgets project that correctly build for 10.10, as well as 10.9 (and earlier.) These changes are currently accepted in the upstream trunk, but will not be available until the next release is cut (which will probably be a non-trivial amount of time after 10.10 releases.) References: http://trac.wxwidgets.org/ticket/16329 http://trac.wxwidgets.org/changeset/76744 http://trac.wxwidgets.org/changeset/76743 --- Formula/wxmac.rb | 148 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) 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