public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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