* [gentoo-commits] gentoo-x86 commit in app-accessibility/at-spi2-core/files: at-spi2-core-2.0.2-abort-if-already-running.patch at-spi2-core-2.0.2-disable-teamspaces-test.patch
@ 2011-08-14 14:16 Nirbheek Chauhan (nirbheek)
0 siblings, 0 replies; only message in thread
From: Nirbheek Chauhan (nirbheek) @ 2011-08-14 14:16 UTC (permalink / raw
To: gentoo-commits
nirbheek 11/08/14 14:16:52
Added: at-spi2-core-2.0.2-abort-if-already-running.patch
at-spi2-core-2.0.2-disable-teamspaces-test.patch
Log:
Move from gnome overlay for GNOME 3
(Portage version: 2.2.0_alpha39_p14/cvs/Linux x86_64)
Revision Changes Path
1.1 app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-abort-if-already-running.patch?rev=1.1&content-type=text/plain
Index: at-spi2-core-2.0.2-abort-if-already-running.patch
===================================================================
From 72b5b5733841657af00f31370d26bdfd5a0b60b7 Mon Sep 17 00:00:00 2001
From: Mike Gorse <mgorse@novell.com>
Date: Thu, 09 Jun 2011 16:50:58 +0000
Subject: Make the bus launcher abort if an instance is already running
Upon starting up, at-spi-bus-launcher now looks for an X property with
the bus address and tries to connect to it, aborting if successful.
This fixes a bug where, if the launcher was run twice (perhaps by both
an autostart script and a request for the bus address), the second
instance would start its main loop, eventually abort, and delete the X
property, which would cause a new X property to be created later,
overriding the old one, if a different user requested the address,
leading to a11y breakage.
---
diff --git a/bus/at-spi-bus-launcher.c b/bus/at-spi-bus-launcher.c
index 9300979..dcc35e4 100644
--- a/bus/at-spi-bus-launcher.c
+++ b/bus/at-spi-bus-launcher.c
@@ -27,6 +27,7 @@
#include <signal.h>
#include <sys/wait.h>
#include <errno.h>
+#include <stdio.h>
#include <gio/gio.h>
#include <X11/Xlib.h>
@@ -349,6 +350,49 @@ is_a11y_using_corba (void)
return result;
}
+static gboolean
+already_running ()
+{
+ Atom AT_SPI_BUS;
+ Atom actual_type;
+ Display *bridge_display;
+ int actual_format;
+ unsigned char *data = NULL;
+ unsigned long nitems;
+ unsigned long leftover;
+ gboolean result = FALSE;
+
+ bridge_display = XOpenDisplay (NULL);
+ if (!bridge_display)
+ return FALSE;
+
+ AT_SPI_BUS = XInternAtom (bridge_display, "AT_SPI_BUS", False);
+ XGetWindowProperty (bridge_display,
+ XDefaultRootWindow (bridge_display),
+ AT_SPI_BUS, 0L,
+ (long) BUFSIZ, False,
+ (Atom) 31, &actual_type, &actual_format,
+ &nitems, &leftover, &data);
+
+ if (data)
+ {
+ GDBusConnection *bus;
+ GError *error = NULL;
+ const gchar *old_session = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
+ /* TODO: Is there a better way to connect? This is really hacky */
+ g_setenv ("DBUS_SESSION_BUS_ADDRESS", data, TRUE);
+ bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
+ g_setenv ("DBUS_SESSION_BUS_ADDRESS", old_session, TRUE);
+ if (bus != NULL)
+ result = TRUE;
+ g_object_unref (bus);
+ }
+
+ XCloseDisplay (bridge_display);
+ return result;
+}
+
+
int
main (int argc,
char **argv)
@@ -363,6 +407,9 @@ main (int argc,
if (is_a11y_using_corba ())
return 0;
+ if (already_running ())
+ return 0;
+
_global_app = g_slice_new0 (A11yBusLauncher);
_global_app->loop = g_main_loop_new (NULL, FALSE);
_global_app->launch_immediately = (argc == 2 && strcmp (argv[1], "--launch-immediately") == 0);
--
cgit v0.9
1.1 app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-disable-teamspaces-test.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-disable-teamspaces-test.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-accessibility/at-spi2-core/files/at-spi2-core-2.0.2-disable-teamspaces-test.patch?rev=1.1&content-type=text/plain
Index: at-spi2-core-2.0.2-disable-teamspaces-test.patch
===================================================================
diff --git a/dbind/dbtest.c b/dbind/dbtest.c
index e8bbb63..9843c3d 100644
--- a/dbind/dbtest.c
+++ b/dbind/dbtest.c
@@ -417,7 +417,7 @@ int main (int argc, char **argv)
test_helpers ();
test_marshalling ();
- test_teamspaces (bus);
+ /* test_teamspaces (bus); */
return 0;
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-08-14 14:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-14 14:16 [gentoo-commits] gentoo-x86 commit in app-accessibility/at-spi2-core/files: at-spi2-core-2.0.2-abort-if-already-running.patch at-spi2-core-2.0.2-disable-teamspaces-test.patch Nirbheek Chauhan (nirbheek)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox