static CORBA_Environment ev;
static Accessibility_Registry registry;
+static Application *this_app;
static gboolean bridge_register_app (gpointer p);
static void bridge_focus_tracker (AtkObject *object);
+static void bridge_exit_func(void);
int
-gtk_module_init(gint argc, char* argv[])
+gtk_module_init(gint *argc, gchar **argv[])
{
ArgStruct *args = (ArgStruct *) g_new0(ArgStruct, 1);
- args->c = argc;
- args->v = argv;
+ args->c = *argc;
+ args->v = *argv;
g_idle_add (bridge_register_app, args);
+ g_atexit (bridge_exit_func);
}
static gboolean
char *obj_id;
ArgStruct *args = (ArgStruct *)gp;
- Application *app;
-
CORBA_exception_init(&ev);
if (!bonobo_init (&(args->c), args->v))
}
/* Create the accesssible application server object */
- app = application_new(atk_get_root ());
+ this_app = application_new(atk_get_root ());
obj_id = "OAFIID:Accessibility_Registry:proto0.1";
atk_add_focus_tracker (bridge_focus_tracker);
Accessibility_Registry_registerApplication (registry,
- bonobo_object_corba_objref (bonobo_object (app)),
+ bonobo_object_corba_objref (bonobo_object (this_app)),
&ev);
return FALSE;
}
+static void bridge_exit_func()
+{
+ fprintf (stderr, "exiting bridge\n");
+ Accessibility_Registry_deregisterApplication (registry,
+ bonobo_object_corba_objref (
+ bonobo_object (this_app)),
+ &ev);
+ fprintf (stderr, "bridge exit func complete.\n");
+}
+
static void bridge_focus_tracker (AtkObject *object)
{
Accessibility_Event *e = Accessibility_Event__alloc();