X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=registryd%2Fregistry-main.c;h=d4c280e2c2e5538dfdbe61b70e165816b0de6e8b;hb=0724cea984b691fdc60a020b237828e9ef018cd7;hp=9da2b5273eac5956aafa0b0d0904659a8c537708;hpb=859a58741936585722c831b64cfd3f16ddad94fb;p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git diff --git a/registryd/registry-main.c b/registryd/registry-main.c index 9da2b52..d4c280e 100644 --- a/registryd/registry-main.c +++ b/registryd/registry-main.c @@ -25,12 +25,19 @@ #include #endif +#include #include -#include -#include +#include #include + +#include + #include "registry.h" +#define spi_get_display() GDK_DISPLAY() + +static void registry_set_ior (SpiRegistry *registry); + int main (int argc, char **argv) { @@ -39,12 +46,10 @@ main (int argc, char **argv) const char *display_name; char *cp, *dp; SpiRegistry *registry; - GSList *reg_env = NULL; + DBusError error; + GMainLoop *mainloop; - if (!bonobo_init (&argc, argv)) - { - g_error ("Could not initialize oaf / Bonobo"); - } + g_type_init(); obj_id = "OAFIID:Accessibility_Registry:1.0"; @@ -53,21 +58,17 @@ main (int argc, char **argv) display_name = g_getenv ("AT_SPI_DISPLAY"); if (!display_name) { - display_name = g_strdup (gdk_display_get_name (gdk_display_get_default ())); + display_name = g_getenv ("DISPLAY"); cp = strrchr (display_name, '.'); dp = strrchr (display_name, ':'); if (cp && dp && (cp > dp)) *cp = '\0'; } - reg_env = bonobo_activation_registration_env_set ( reg_env, "AT_SPI_DISPLAY", - display_name); - ret = bonobo_activation_register_active_server ( - obj_id, - bonobo_object_corba_objref (bonobo_object (registry)), - reg_env); - bonobo_activation_registration_env_free (reg_env); + dbus_error_init (&error); + mainloop = g_main_loop_new (NULL, FALSE); + ret= dbus_bus_request_name(registry->droute.bus, SPI_DBUS_NAME_REGISTRY, DBUS_NAME_FLAG_DO_NOT_QUEUE, &error); - if (ret != Bonobo_ACTIVATION_REG_SUCCESS) + if (ret == DBUS_REQUEST_NAME_REPLY_EXISTS) { #ifdef AT_SPI_DEBUG fprintf (stderr, "SpiRegistry Message: SpiRegistry daemon was already running.\n"); @@ -78,9 +79,24 @@ main (int argc, char **argv) #ifdef AT_SPI_DEBUG fprintf (stderr, "SpiRegistry Message: SpiRegistry daemon is running.\n"); #endif - bonobo_main (); + registry_set_ior (registry); + g_main_loop_run (mainloop); } return 0; } +static void +registry_set_ior (SpiRegistry *registry){ + Atom AT_SPI_IOR = XInternAtom (spi_get_display (), "AT_SPI_IOR", FALSE); + char *iorstring = NULL; + + iorstring = SPI_DBUS_NAME_REGISTRY; + + XChangeProperty (spi_get_display(), + XDefaultRootWindow (spi_get_display ()), + AT_SPI_IOR, (Atom) 31, 8, + PropModeReplace, + (unsigned char *) iorstring, + iorstring ? strlen (iorstring) : 0); +}