diff options
Diffstat (limited to 'www/firefox-esr/files/patch-bug1138845')
-rw-r--r-- | www/firefox-esr/files/patch-bug1138845 | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/www/firefox-esr/files/patch-bug1138845 b/www/firefox-esr/files/patch-bug1138845 new file mode 100644 index 000000000000..12a9542f538f --- /dev/null +++ b/www/firefox-esr/files/patch-bug1138845 @@ -0,0 +1,134 @@ +commit 4b5b332 +Author: Mike Hommey <mh+mozilla@glandium.org> +Date: Tue Mar 3 18:41:13 2015 +0900 + + Bug 1138845 - Don't require atk-bridge for gtk+3 builds. r=tbsaunde +--- + accessible/atk/Platform.cpp | 29 +++++++++++++++++++---------- + config/system-headers | 1 - + configure.in | 2 +- + 3 files changed, 20 insertions(+), 12 deletions(-) + +diff --git accessible/atk/Platform.cpp accessible/atk/Platform.cpp +index a2afd96..2ed5e0b 100644 +--- accessible/atk/Platform.cpp ++++ accessible/atk/Platform.cpp +@@ -18,8 +18,9 @@ + #include <dbus/dbus.h> + #endif + #include <gtk/gtk.h> ++ + #if (MOZ_WIDGET_GTK == 3) +-#include <atk-bridge.h> ++extern "C" __attribute__((weak,visibility("default"))) int atk_bridge_adaptor_init(int*, char **[]); + #endif + + using namespace mozilla; +@@ -46,7 +47,6 @@ static gulong sToplevel_hide_hook = 0; + + GType g_atk_hyperlink_impl_type = G_TYPE_INVALID; + +-#if (MOZ_WIDGET_GTK == 2) + struct GnomeAccessibilityModule + { + const char *libName; +@@ -67,11 +67,13 @@ static GnomeAccessibilityModule sAtkBridge = { + "gnome_accessibility_module_shutdown", nullptr + }; + ++#if (MOZ_WIDGET_GTK == 2) + static GnomeAccessibilityModule sGail = { + "libgail.so", nullptr, + "gnome_accessibility_module_init", nullptr, + "gnome_accessibility_module_shutdown", nullptr + }; ++#endif + + static nsresult + LoadGtkModule(GnomeAccessibilityModule& aModule) +@@ -98,7 +100,11 @@ LoadGtkModule(GnomeAccessibilityModule& aModule) + else + subLen = loc2 - loc1; + nsAutoCString sub(Substring(libPath, loc1, subLen)); ++#if (MOZ_WIDGET_GTK == 2) + sub.AppendLiteral("/gtk-2.0/modules/"); ++#else ++ sub.AppendLiteral("/gtk-3.0/modules/"); ++#endif + sub.Append(aModule.libName); + aModule.lib = PR_LoadLibrary(sub.get()); + if (aModule.lib) +@@ -123,7 +129,6 @@ LoadGtkModule(GnomeAccessibilityModule& aModule) + } + return NS_OK; + } +-#endif // (MOZ_WIDGET_GTK == 2) + + void + a11y::PlatformInit() +@@ -175,14 +180,17 @@ a11y::PlatformInit() + + // Init atk-bridge now + PR_SetEnv("NO_AT_BRIDGE=0"); +-#if (MOZ_WIDGET_GTK == 2) +- rv = LoadGtkModule(sAtkBridge); +- if (NS_SUCCEEDED(rv)) { +- (*sAtkBridge.init)(); +- } +-#else +- atk_bridge_adaptor_init(nullptr, nullptr); ++#if (MOZ_WIDGET_GTK == 3) ++ if (atk_bridge_adaptor_init) { ++ atk_bridge_adaptor_init(nullptr, nullptr); ++ } else + #endif ++ { ++ nsresult rv = LoadGtkModule(sAtkBridge); ++ if (NS_SUCCEEDED(rv)) { ++ (*sAtkBridge.init)(); ++ } ++ } + + if (!sToplevel_event_hook_added) { + sToplevel_event_hook_added = true; +@@ -210,7 +218,6 @@ a11y::PlatformShutdown() + sToplevel_hide_hook); + } + +-#if (MOZ_WIDGET_GTK == 2) + if (sAtkBridge.lib) { + // Do not shutdown/unload atk-bridge, + // an exit function registered will take care of it +@@ -221,6 +228,7 @@ a11y::PlatformShutdown() + sAtkBridge.init = nullptr; + sAtkBridge.shutdown = nullptr; + } ++#if (MOZ_WIDGET_GTK == 2) + if (sGail.lib) { + // Do not shutdown gail because + // 1) Maybe it's not init-ed by us. e.g. GtkEmbed +diff --git config/system-headers config/system-headers +index 2c94a7d..cf01775 100644 +--- config/system-headers ++++ config/system-headers +@@ -189,7 +189,6 @@ asm/signal.h + ASRegistry.h + assert.h + atk/atk.h +-atk-bridge.h + atlcom.h + atlconv.h + atlctl.cpp +diff --git configure.in configure.in +index 0bd1eb7..f3b3365 100644 +--- configure.in ++++ configure.in +@@ -4408,7 +4408,7 @@ fi + + if test "$COMPILE_ENVIRONMENT"; then + if test "$MOZ_ENABLE_GTK3"; then +- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES) ++ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES) + MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS" + dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead + dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build |