- case ETYPE_OBJECT:
- case ETYPE_PROPERTY:
- case ETYPE_FOCUS:
- ret = ®istry->object_listeners;
- break;
- case ETYPE_WINDOW:
- ret = ®istry->window_listeners;
- break;
- case ETYPE_TOOLKIT:
- ret = ®istry->toolkit_listeners;
- break;
- case ETYPE_KEYBOARD:
- default:
- ret = NULL;
- break;
- }
- return ret;
-}
-
-/*
- * CORBA Accessibility::Registry::registerGlobalEventListener method implementation
- */
-static void
-impl_accessibility_registry_register_global_event_listener (
- PortableServer_Servant servant,
- Accessibility_EventListener listener,
- const CORBA_char *event_name,
- CORBA_Environment *ev)
-{
- SpiRegistry *registry = SPI_REGISTRY (bonobo_object_from_servant (servant));
- SpiListenerStruct *ls = spi_listener_struct_new (listener, ev);
- EventTypeStruct etype;
- GList **list;
-
-#ifdef SPI_DEBUG
- fprintf (stderr, "registering");
- fprintf (stderr, "registering for events of type %s\n", event_name);
-#endif
-
- /* parse, check major event type and add listener accordingly */
- parse_event_type (&etype, event_name);
- ls->event_type_quark = etype.major;
- ls->event_type_cat = etype.type_cat;
-
- list = get_listener_list (registry, etype.type_cat);
-
- if (list)
- {
- *list = g_list_prepend (*list, ls);
-
- if (etype.type_cat == ETYPE_TOOLKIT)