main (int argc, char **argv)
{
int ret;
- char *obj_id;
+ char *obj_id, *display_name;
+ char *cp, *dp;
SpiRegistry *registry;
+ GSList *reg_env = NULL;
if (!bonobo_init (&argc, argv))
{
registry = spi_registry_new ();
- ret = bonobo_activation_active_server_register (
+ display_name = g_getenv ("AT_SPI_DISPLAY");
+ if (!display_name)
+ {
+ display_name = g_strdup (gdk_display_get_name (gdk_display_get_default ()));
+ cp = strrchr (display_name, '.');
+ dp = strrchr (display_name, ':');
+ if (cp && dp && ((guint) cp > (guint) 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)));
+ bonobo_object_corba_objref (bonobo_object (registry)),
+ reg_env);
+ bonobo_activation_registration_env_free (reg_env);
if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
{