Bug 1110211 - a11y update for Gtk3. r=glandium

This commit is contained in:
Martin Stransky 2014-12-16 07:38:00 +01:00
parent 83a6796724
commit b2519b99c7
3 changed files with 15 additions and 1 deletions

View File

@ -18,6 +18,9 @@
#include <dbus/dbus.h>
#endif
#include <gtk/gtk.h>
#if (MOZ_WIDGET_GTK == 3)
#include <atk-bridge.h>
#endif
using namespace mozilla;
using namespace mozilla::a11y;
@ -43,6 +46,7 @@ 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;
@ -119,6 +123,7 @@ LoadGtkModule(GnomeAccessibilityModule& aModule)
}
return NS_OK;
}
#endif // (MOZ_WIDGET_GTK == 2)
void
a11y::PlatformInit()
@ -158,20 +163,26 @@ a11y::PlatformInit()
}
}
#if (MOZ_WIDGET_GTK == 2)
// Load and initialize gail library.
nsresult rv = LoadGtkModule(sGail);
if (NS_SUCCEEDED(rv))
(*sGail.init)();
#endif
// Initialize the MAI Utility class, it will overwrite gail_util.
g_type_class_unref(g_type_class_ref(mai_util_get_type()));
// 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);
#endif
if (!sToplevel_event_hook_added) {
sToplevel_event_hook_added = true;
@ -199,6 +210,7 @@ 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
@ -220,6 +232,7 @@ a11y::PlatformShutdown()
sGail.init = nullptr;
sGail.shutdown = nullptr;
}
#endif
// if (sATKLib) {
// PR_UnloadLibrary(sATKLib);
// sATKLib = nullptr;

View File

@ -189,6 +189,7 @@ asm/signal.h
ASRegistry.h
assert.h
atk/atk.h
atk-bridge.h
atlcom.h
atlconv.h
atlctl.cpp

View File

@ -4426,7 +4426,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 $GDK_PACKAGES)
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)
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