BonoboObject *registry = BONOBO_OBJECT (data);
Accessibility_Event e;
CORBA_Environment ev;
+ Accessibility_Accessible a;
+ CORBA_exception_init (&ev);
e.type = "object:children-changed:add";
e.source = BONOBO_OBJREF (desktop);
e.detail1 = index;
e.detail2 = 0;
- CORBA_exception_init (&ev);
+ a = Accessibility_Accessible_getChildAtIndex (BONOBO_OBJREF (desktop),
+ index, &ev);
+ /* FIXME
+ spi_init_any_object (&e.any_data, a);
+ */
+ spi_init_any_nil (&e.any_data);
+ Accessibility_Accessible_unref (a, &ev);
Accessibility_Registry_notifyEvent (BONOBO_OBJREF (registry),
&e, &ev);
Accessibility_Desktop_unref (e.source, &ev);
{
BonoboObject *registry = BONOBO_OBJECT (data);
Accessibility_Event e;
+ Accessibility_Accessible a;
CORBA_Environment ev;
+ CORBA_exception_init (&ev);
+
e.type = "object:children-changed:remove";
e.source = BONOBO_OBJREF (desktop);
e.detail1 = index;
e.detail2 = 0;
- CORBA_exception_init (&ev);
+ a = Accessibility_Accessible_getChildAtIndex (BONOBO_OBJREF (desktop),
+ index, &ev);
+ /* FIXME
+ spi_init_any_object (&e.any_data, a);
+ */
+ spi_init_any_nil (&e.any_data);
+ Accessibility_Accessible_unref (a, &ev);
Accessibility_Registry_notifyEvent (BONOBO_OBJREF (registry),
&e, &ev);
Accessibility_Desktop_unref (e.source, &ev);
{
etype->type_cat = ETYPE_WINDOW;
}
+ else if (!g_ascii_strncasecmp (event_name, "keyboard:", 9))
+ {
+ etype->type_cat = ETYPE_KEYBOARD;
+ }
else
{
etype->type_cat = ETYPE_TOOLKIT;
GList **list;
#ifdef SPI_LISTENER_DEBUG
- fprintf (stderr, "registering");
fprintf (stderr, "registering for events of type %s\n", event_name);
#endif
#endif
ctx->e_out.source = CORBA_Object_duplicate (ctx->source, ctx->ev);
-
if (BONOBO_EX (ctx->ev))
{
return SPI_RE_ENTRANT_CONTINUE;
list = get_listener_list (registry, ctx.etype.type_cat);
- if (list)
+ if (list && *list)
{
ctx.ev = ev;
ctx.e_out = *e;
+ CORBA_any__copy (&ctx.e_out.any_data, &e->any_data);
ctx.source = e->source;
-
spi_re_entrant_list_foreach (list, notify_listeners_cb, &ctx);
}
-
}
static void
static void
spi_registry_init (SpiRegistry *registry)
{
+ fprintf (stderr, "REGISTRY INITIALIZED: toolkit list = %p\n",
+ ®istry->toolkit_listeners);
registry->object_listeners = NULL;
registry->window_listeners = NULL;
registry->toolkit_listeners = NULL;