X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=blobdiff_plain;f=at-bridge%2Fbridge.c;h=d616f8ee33232a2427cfdfb3b14ca67d5ae65660;hp=6090c753e4d2bc8f2d1700602a5a04a4b35a3945;hb=bde0b121a6844324eb24bae78567cff9b93c307e;hpb=26718b06057178a91389ba77e9915b16e5e90c65 diff --git a/at-bridge/bridge.c b/at-bridge/bridge.c index 6090c75..d616f8e 100644 --- a/at-bridge/bridge.c +++ b/at-bridge/bridge.c @@ -37,7 +37,11 @@ struct _ArgStruct { char **v; }; +static CORBA_Environment ev; +static Accessibility_Registry registry; + static gboolean bridge_register_app (gpointer p); +static void bridge_focus_tracker (AtkObject *object); int gtk_module_init(gint argc, char* argv[]) @@ -51,19 +55,17 @@ gtk_module_init(gint argc, char* argv[]) static gboolean bridge_register_app (gpointer gp) { - CORBA_Environment ev; CORBA_Object oclient; AtkObject *atko; char *obj_id; char sbuf[30]; ArgStruct *args = (ArgStruct *)gp; - Accessibility_Registry registry; Application *app; CORBA_exception_init(&ev); - if (!bonobo_init (&args->c, &args->v)) + if (!bonobo_init (&(args->c), args->v)) { g_error ("Could not initialize Bonobo"); } @@ -91,10 +93,23 @@ bridge_register_app (gpointer gp) fprintf(stderr, "About to register application\n"); + bonobo_activate (); + + /* Register for focus event notifications, and register app with central registry */ + atk_add_focus_tracker (bridge_focus_tracker); + Accessibility_Registry_registerApplication (registry, bonobo_object_corba_objref (bonobo_object (app)), &ev); - bonobo_activate (); - bonobo_main (); /* because app is also a server */ return FALSE; } + +static void bridge_focus_tracker (AtkObject *object) +{ + Accessibility_Event *e = g_new0(Accessibility_Event, 1); + e->type = CORBA_string_dup ("focus:"); + e->target = bonobo_object_corba_objref (bonobo_object (accessible_new (object))); + e->detail1 = 0; + e->detail2 = 0; + Accessibility_Registry_notifyEvent (registry, e, &ev); +}