[at-spi2-atk] Use atspi_is_initialized to decide whether to expose p2p connection
- From: Mike Gorse <mgorse src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [at-spi2-atk] Use atspi_is_initialized to decide whether to expose p2p connection
- Date: Sun, 16 Jun 2013 19:15:54 +0000 (UTC)
commit 683739dea15d7c02c217a404d8c5d9d7af076a57
Author: Mike Gorse <mgorse suse com>
Date: Sun Jun 16 14:04:01 2013 -0500
Use atspi_is_initialized to decide whether to expose p2p connection
Previously, direct D-Bus connections were not exposed if AT_SPI_CLIENT
was set in the environment, since they are causing deadlock if the
application and the AT are in the same process. However, AT_SPI_CLIENT
was only being set by pyatspi, meaning that libatspi consumers not using
pyatspi (Javascript embedded in gnome-shell that uses the libatspi
introspection bindings directly, for instance) would still have problems
when attempting to inspect their own accessibles.
Also removed the code in event.c to disable main loop context switching
when AT_SPI_CLIENT was set. Modifying it to also check
atspi_is_initialized would cause deadlock with gnome-shell when Orca is
running. Hopefully that code is not needed anymore.
atk-adaptor/adaptors/application-adaptor.c | 2 +-
atk-adaptor/event.c | 9 +++------
configure.ac | 2 +-
3 files changed, 5 insertions(+), 8 deletions(-)
---
diff --git a/atk-adaptor/adaptors/application-adaptor.c b/atk-adaptor/adaptors/application-adaptor.c
index 260a4d7..b74e5be 100644
--- a/atk-adaptor/adaptors/application-adaptor.c
+++ b/atk-adaptor/adaptors/application-adaptor.c
@@ -110,7 +110,7 @@ DBusMessage *reply;
reply = dbus_message_new_method_return(msg);
if (reply)
{
- const char *retval = (g_getenv ("AT_SPI_CLIENT") ?
+ const char *retval = (atspi_is_initialized () ?
"":
spi_global_app_data->app_bus_addr);
if (!retval)
diff --git a/atk-adaptor/event.c b/atk-adaptor/event.c
index 440d436..dc4e3ec 100644
--- a/atk-adaptor/event.c
+++ b/atk-adaptor/event.c
@@ -98,15 +98,12 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message)
{
DBusPendingCall *pending;
SpiReentrantCallClosure closure;
- GMainContext *main_context;
GSource *source;
- main_context = (g_getenv ("AT_SPI_CLIENT") ? NULL :
- spi_global_app_data->main_context);
closure.bus = bus;
- closure.loop = g_main_loop_new (main_context, FALSE);
+ closure.loop = g_main_loop_new (spi_global_app_data->main_context, FALSE);
closure.reply = NULL;
- switch_main_context (main_context);
+ switch_main_context (spi_global_app_data->main_context);
if (!dbus_connection_send_with_reply (bus, message, &pending, 9000) || !pending)
{
@@ -116,7 +113,7 @@ send_and_allow_reentry (DBusConnection * bus, DBusMessage * message)
dbus_pending_call_set_notify (pending, set_reply, (void *) &closure, NULL);
source = g_timeout_source_new (500);
g_source_set_callback (source, timeout_reply, &closure, NULL);
- closure.timeout = g_source_attach (source, main_context);
+ closure.timeout = g_source_attach (source, spi_global_app_data->main_context);
g_source_unref (source);
g_main_loop_run (closure.loop);
if (closure.timeout != -1)
diff --git a/configure.ac b/configure.ac
index fd338b4..a42688b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,7 +55,7 @@ PKG_CHECK_MODULES(ATK, [atk >= 2.7.90])
AC_SUBST(ATK_LIBS)
AC_SUBST(ATK_CFLAGS)
-PKG_CHECK_MODULES(ATSPI, [atspi-2 >= 2.7.5])
+PKG_CHECK_MODULES(ATSPI, [atspi-2 >= 2.9.3])
AC_SUBST(ATSPI_LIBS)
AC_SUBST(ATSPI_CFLAGS)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]