[pyatspi2] Addition of new 'Accessibility' D-Bus bus. The bus address
- From: Mark Doffman <markdoffman src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pyatspi2] Addition of new 'Accessibility' D-Bus bus. The bus address
- Date: Wed, 9 Dec 2009 12:18:48 +0000 (UTC)
commit 3f1a8510875e24b0cac8a3ba2c39d62d7c633b27
Author: Mark Doffman <mark doffman codethink co uk>
Date: Tue Dec 8 14:35:12 2009 -0800
Addition of new 'Accessibility' D-Bus bus. The bus address
is located using X properties.
pyatspi/busutils/bus.py | 45 +++++++++++++++++++++++++++++++++++++---
tests/apps/test-application.c | 2 +-
tests/pyatspi/testrunner | 4 +++
3 files changed, 46 insertions(+), 5 deletions(-)
---
diff --git a/pyatspi/busutils/bus.py b/pyatspi/busutils/bus.py
index 07c7658..8717e4c 100644
--- a/pyatspi/busutils/bus.py
+++ b/pyatspi/busutils/bus.py
@@ -17,10 +17,34 @@ import Queue as _queue
import dbus.bus as _bus
import dbus.connection as _connection
+import os as _os
+
import gobject
from proxy import AccessibilityProxy
+import sys
+import traceback
+
+def _get_accessibility_bus_address ():
+
+ from Xlib import display, Xatom
+
+ if "AT_SPI_DISPLAY" in _os.environ.keys():
+ dname = _os.environ["AT_SPI_DISPLAY"]
+ else:
+ dname = None
+
+ if dname:
+ d = display.Display(dname)
+ else:
+ d = display.Display()
+ a = d.get_atom ("AT_SPI_BUS")
+ s = d.screen().root
+ p = s.get_property (a, Xatom.STRING, 0, 100)
+
+ return p.value
+
class _AccessibilityBus (_bus.BusConnection):
"""
The bus used for accessibility
@@ -37,12 +61,13 @@ class _AccessibilityBus (_bus.BusConnection):
normal during signal delivery.
"""
- def __init__ (self):
- _bus.BusConnection.__init__(self, _bus.BusConnection.TYPE_SESSION, mainloop=None)
+ def __new__ (cls, address, mainloop):
+ return _bus.BusConnection.__new__(cls, address, mainloop)
+ def __init__ (self, address, mainloop):
+ _bus.BusConnection.__init__(self, address, mainloop)
self._signal_queue = _queue.Queue ()
-
def _event_dispatch (self):
while not self._signal_queue.empty():
(func, args, kwargs) = self._signal_queue.get (False)
@@ -73,5 +98,17 @@ class AccessibilityBus (_AccessibilityBus):
if AccessibilityBus._shared_instance:
return AccessibilityBus._shared_instance
else:
- AccessibilityBus._shared_instance = _AccessibilityBus.__new__ (cls)
+ try:
+ AccessibilityBus._shared_instance = _AccessibilityBus.__new__ (cls, _get_accessibility_bus_address(), None)
+ except Exception:
+ print "AT-SPI: Could not find accessibility bus, using session bus"
+ AccessibilityBus._shared_instance = _AccessibilityBus.__new__ (cls, _bus.BusConnection.TYPE_SESSION, None)
+
return AccessibilityBus._shared_instance
+
+ def __init__ (self):
+ try:
+ _AccessibilityBus.__init__ (self, _get_accessibility_bus_address(), None)
+ except Exception:
+ print "AT-SPI: Could not find accessibility bus, using session bus"
+ _AccessibilityBus.__init__ (self, _bus.BusConnection.TYPE_SESSION, None)
diff --git a/tests/apps/test-application.c b/tests/apps/test-application.c
index 053606b..c503d3c 100644
--- a/tests/apps/test-application.c
+++ b/tests/apps/test-application.c
@@ -250,7 +250,7 @@ static GOptionEntry optentries[] =
{"test-module", 0, 0, G_OPTION_ARG_STRING, &tmodule_path, "Module containing test scenario", NULL},
{"test-atspi-library", 0, 0, G_OPTION_ARG_STRING, &amodule_path, "Gtk module with atk-atspi adaptor", NULL},
{"test-data-directory", 0, 0, G_OPTION_ARG_STRING, &tdata_path, "Path to directory of test data", NULL},
- {"atspi-dbus-name", 0, 0, G_OPTION_ARG_STRING, &bus_name, "Bus name", NULL},
+ {"test-dbus-name", 0, 0, G_OPTION_ARG_STRING, &bus_name, "Bus name", NULL},
{NULL}
};
diff --git a/tests/pyatspi/testrunner b/tests/pyatspi/testrunner
index 37670dd..6ff15c5 100755
--- a/tests/pyatspi/testrunner
+++ b/tests/pyatspi/testrunner
@@ -28,11 +28,15 @@ def run_test_app(module_name, dbus_name=None, wait_for_debug=False):
if (dbus_name):
print " ".join([test_application,
"--atspi-dbus-name", dbus_name,
+ "--atspi-no-register",
+ "--test-dbus-name", dbus_name,
"--test-atspi-library", test_atspi_library,
"--test-module", test_module,
"--test-data-directory", test_data_directory,])
pop = Popen([test_application,
"--atspi-dbus-name", dbus_name,
+ "--atspi-no-register",
+ "--test-dbus-name", dbus_name,
"--test-atspi-library", test_atspi_library,
"--test-module", test_module,
"--test-data-directory", test_data_directory,])
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]