2001-12-10 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
index 6c92ee3..92845b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2001-12-10  Michael Meeks  <michael@ximian.com>
+
+       * configure.in: use cspi/libspi.pc.in instead.
+
+       * Makefile.am (pkgconfig_DATA): upd. to match.
+
+       * test/simple-at.c (report_focus_event): kill hacks around
+       bad return values, use putenv not setenv
+
+       * libspi/desktop.c (impl_desktop_get_child_at_index): don't
+       fire ChildGone - I killed it.
+
+       * libspi/component.c
+       (impl_accessibility_component_get_extents): remove
+       bogus return.
+
+       * idl/Accessible.idl: kill ChildGone exception.
+
+       * cspi/*.[ch]: kill int return from ref / unref.
+       
+       * cspi/spi_main.c (cspi_object_add_check): fold into
+       (cspi_object_add): here.
+
+       * cspi/spi_component.c (AccessibleComponent_getExtents):
+       handle exceptions elegantly.
+
+       * cspi/spi-private.h (cspi_check_ev_return),
+       (cspi_return_if_fail): impl.
+
+       * cspi/spi_accessible.c: use extensively.
+       (AccessibleStateSet_equals): add direct compare check.
+
+       * cspi/spi_selection.c: tolerate NULL objs, and check
+       exceptions before return.
+
+       * cspi/spi-util.c (cspi_warn_ev): rename to
+       (cspi_check_ev): this & don't pass ev in; no point.
+
+2001-12-10  Michael Meeks  <michael@ximian.com>
+
+       * test/test-simple.c: use putenv not setenv
+       (get_environment_vars): more chatty if you're not using
+       the fun bits.
+
+       * test/simple-at.c: do the setenv so more people see the
+       nice demo easily.
+
+2001-12-10  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/registry.c:
+       Changed check of CORBA_environment on notification to be a warning
+       instead of an error for the moment, since we can recover from this
+       error when caused by a queued notification from a dead app.
+       
+       * libspi/value.c:
+       Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
+       used by all current implementors of AtkValue), and coerce to
+       CORBA_float. (Proper general case fix may require change to Value.idl).
+
+2001-12-09  Bill Haneman <bill.haneman@sun.com>
+
+       * cspi/spi.h:
+       * cspi/spi_event.c:
+       * cspi/spi_accessible.c:
+       Documentation fixes: added user_data params to documentation for 
+       listeners and callbacks.  
+
+       * cspi/spi_accessible.c: 
+       Changed AccessibleStateSet_compare to return a
+       StateSet rather than return the difference set into a third parameter.
+       
+       
+2001-12-09  Bill Haneman <bill.haneman@sun.com>
+
+       * configure.in:
+       Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
+       remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
+       it). 
+
+       * Makefile.am:
+       Remove subdirectory po from SUBDIRS for now.
+
+       * at-bridge/bridge.c:
+       Beefed up a couple of debug printouts.
+       One-line fix for signal notification name formatting.
+
+       * libspi/accessible.c:
+       Added assertion to spi_accessible_new ().
+
+       * libspi/application.c:
+       Put #ifdef qualifiers around a printf.
+
+       * libspi/value.c:
+       Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
+
+       * registryd/Makefile.am:
+       * util/Makefile.am:
+       Replaces use of XML_I18N_MERGE_SERVER_RULE with
+       INTLTOOL_SERVER_RULE macro.
+
+       * test/simple-at.c:
+       Added an event listener for several ATK signals, for
+       testing and debugging.  Removed a few g_warnings.
+       Added test output if focussed item implements the Value interface.
+
+       * test/test-simple.c:
+       Added test_value () function (known not to pass at the moment, so
+       not actually called yet.
+       
+2001-12-08  Michael Meeks  <michael@ximian.com>
+
+       * at-bridge/bridge.c (bridge_focus_tracker),
+       (emit_eventv): fix the same ref. leak.
+       (register_atk_event_listeners): don't leak.
+
+       * cspi/spi-listener-impl.c (cspi_event): more 
+       protection from client code.
+
+       * test/test-simple.c (test_desktop): unref the app.
+
+       * test/Makefile.am: upd. TESTS.
+
+       * at-bridge/bridge.c (bridge_exit_func): release the registry.
+
+       * test/keysynth-demo.c (keysynth_exit): unref the listeners.
+
+       * cspi/spi_accessible.c (Accessible_queryInterface): constify.
+
+       * cspi/spi_registry.c: constify in strings.
+       (deregisterGlobalEventListenerAll): don't release the ref.
+
+       * cspi/spi.h: start removing redundant / conflicting
+       gtkdoc comments, making the API readable at a glance :-)
+       
+       * cspi/spi_event.c (AccessibleEventListener_unref): impl.
+
+       * test/keysynth-demo.c (keysynth_exit, main): upd.
+
+       * test/simple-at.c (main, simple_at_exit): upd.
+
+       * test/test-simple.c (unutterable_horror): kill.
+       (utterable_normal_derefs): kill.
+       (main): upd & do a setenv before gtk_init, so that we
+       can use memprof - and to save the pain of remembering
+       this, if we're running under memprof - don't exit.
+
+       * cspi/spi_main.c (SPI_exit): return exit status
+       for cspi.
+       (SPI_event_quit): impl.
+       (SPI_event_main): simplify.
+       (cspi_is_gnome_app): kill.
+       (SPI_init): kill isGNOMEapp arg.
+
+       * at-bridge/bridge.c (register_atk_event_listeners):
+       re-instate the unref.
+       (bridge_exit_func): don't re-activate the registry,
+       protect vs. theoretical re-entry, use the
+       AT_BRIDGE_SHUTDOWN env. var to determine whether to
+       assert a clean shutdown - for regression tests.
+
+2001-12-08  Abel Cheung  <maddog@linux.org.hk>
+
+       * configure.in: Comment out dummy i18n support for now,
+         otherwise it fails to build.
+       * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
+         EXTRA_DIST. They are missing in tarball.
+
+2001-12-07  Michael Meeks  <michael@ximian.com>
+
+       * util/magnifier.c: kill bonobo activation reg. race.
+
+       * libspi/component.c
+       (impl_accessibility_component_get_extents): make it match
+       it's sig.
+
+       * libspi/registry.c (_registry_notify_listeners):
+       re-remove X headers & reconcile conflicts.
+       (spi_listener_struct_free): bad conflict resolve.
+       (impl_accessibility_registry_register_application):
+       more bad merging fixed.
+       (impl_accessibility_registry_deregister_application): ditto.
+       (spi_registry_new): ditto.
+       (spi_registry_init): don't have an applications field.
+
+[ merge fixups2 branch to here ]
+2001-12-07  Michael Meeks  <michael@ximian.com>
+
+       * test/simple-at.c (report_focus_event),
+       (report_focussed_accessible): remove g_warning debug.
+
+2001-12-07  Michael Meeks  <michael@ximian.com>
+
+       * test/test-simple.c (validate_tree): comment out some checks.
+       (test_desktop): app now not registered idly - horay.
+
+2001-12-07  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi_registry.c
+       (registerAccessibleKeystrokeListener): clean, stop it leaking
+       great swathes of memory, and device event controller references.
+       ensure we always pass valid sequences.
+       (deregisterAccessibleKeystrokeListener): ditto.
+       (generateKeyEvent): upd.
+
+       * at-bridge/bridge.c (bridge_key_listener): handle
+       registry dead exception gracefully.
+       (bridge_focus_tracker, emit_eventv): free ev.
+
+       * test/simple-at.c (report_focus_event): fix polarity.
+
+       * libspi/application.c (notify_listeners): kill the ev
+       argument, and make sure we init the ev we use.
+       (spi_application_object_event_listener): split out a chunk
+       (get_atk_object_ref): here & fixup.
+       (reverse_lookup_name_for_toolkit_event): make const.
+       (spi_application_toolkit_event_listener): fixup, kill leaks
+       ref problems etc.
+
+       * at-bridge/bridge.c (register_atk_event_listeners):
+       don't unref the noop object - causes grief.
+
+       * libspi/registry.c: remove the X headers.
+       turn off the debug churn.
+
+       * libspi/accessible.c (spi_accessible_new_return): only
+       release the ref if we are supposed to [doh]
+
+       * test/simple-at.c (report_button_press, report_focus_event):
+       guard vs. unexpected exit.
+
+       * at-bridge/bridge.c (gtk_module_init): prune printf.
+       (bridge_exit_func): fix app unref.
+
+       * libspi/Makefile.am: don't install registry or desktop.h
+
+       * libspi/*.h: update includes.
+
+       * libspi/application.h: don't include ourself, or
+       other redundant headers.
+
+2001-12-06  Michael Meeks  <michael@ximian.com>
+
+       * libspi/accessible.c
+       (get_accessible_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing cut and paste.
+
+       * cspi/spi_main.c (cspi_cleanup): guard vs. double
+       invokes.
+       (SPI_init): register atexit cleanup handler here.
+
+2001-12-06  Michael Meeks  <michael@ximian.com>
+
+       * at-bridge/bridge.c (gtk_module_init): g_error on
+       activation exception
+
+2001-12-06  Michael Meeks  <michael@ximian.com>
+
+       * at-bridge/bridge.c (gtk_module_init): some sort of
+       confusing merge clash - reverted.
+       (bridge_idle_init): ditto.
+
+       * test/test-simple.c (main, utterable_normal_derefs):
+       merge from Bill - somehow not committed.
+
+2001-12-06  Michael Meeks  <michael@ximian.com>
+
+       * libspi/value.c (spi_value_class_init): upd.
+       (spi_value_finalize): kill.
+
+       * libspi/table.c (spi_table_finalize): kill.
+       (spi_table_interface_new): upd.
+       (spi_table_class_init): upd.
+       (get_table_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+
+       * libspi/selection.c (spi_selection_finalize): kill.
+       (spi_selection_interface_new): upd.
+       (spi_selection_class_init): upd.
+       (get_selection_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+
+       * libspi/relation.c (spi_relation_finalize): kill.
+       (spi_relation_class_init, spi_relation_new): upd
+
+       * libspi/image.c (spi_image_finalize): kill.
+       (spi_image_class_init): upd.
+       (spi_image_interface_new): upd.
+       (get_image_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+
+       * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
+       (spi_hyperlink_finalize): kill.
+       (spi_hyperlink_new): upd.
+       (get_hyperlink_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+
+       * libspi/hypertext.c (spi_hypertext_interface_new): upd.
+       (spi_hypertext_finalize): kill.
+       (spi_hypertext_class_init): upd.
+       (get_hypertext_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+
+       * libspi/editabletext.c (spi_editable_text_finalize): kill.
+       (spi_editable_text_interface_new): upd.
+       (get_editable_text_from_servant): impl.
+       Upd. all CORBA impl.s to use it killing yet more cut and paste.
+       
+       * libspi/text.c (get_text_from_servant): impl.
+       All impls - update to use it killing more cut and paste,
+       also fix bad string returns on duff args ( a somewhat
+       impossible case to handle - but hey ).
+       (spi_text_construct): impl.
+       (spi_text_interface_new): upd.
+       (spi_text_object_finalize): kill.
+
+       * libspi/component.c
+       (accessibility_component_object_finalize): kill.
+       (spi_component_class_init): upd.
+       (get_component_from_servant): impl. helper to kill cut & paste.
+       (impl_accessibility_component_contains): 
+       (impl_accessibility_component_get_accessible_at_point): 
+       (impl_accessibility_component_get_position): 
+       (impl_accessibility_component_get_extents): 
+       (impl_accessibility_component_get_mdi_z_order): 
+       (impl_accessibility_component_get_layer): 
+       (spi_component_interface_new): upd.
+
+       * libspi/action.c (spi_action_finalize): kill.
+       (spi_action_class_init): upd. inherit from SpiObject.
+       (spi_action_interface_new): upd.
+       (get_action_from_servant): impl. helper to reduce cut & paste.
+       (impl_getKeyBinding, impl_getName, impl_doAction),
+       (impl_getDescription): Use it everywhere.
+
+       * cspi/spi_main.c (get_live_refs): a pointer hash.
+       (spi_object_hash, spi_object_equal): comment out.
+       There are issues with CORBA object hashing that need
+       solving.
+
+       * libspi/application.c (spi_application_init),
+       (spi_application_new): upd.
+
+       * libspi/accessible.c (spi_accessible_object_finalize): kill.
+       (spi_accessible_class_init): upd.
+       s/accessible/object/ in epv methods.
+
+2001-12-05  Bill Haneman <bill.haneman@sun.com>
+
+       * at-bridge/bridge.c:
+       Reorder the bridge initialization into the bridge gtk_module_init,
+       an immediate call to bridge_register_app, and an idle_add for
+       register_atk_event_listeners (the only code that *must* wait until
+       GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
+       the activation, creates the application's Accessible object, and
+       queues the bridge_idle_init function.  Restored call to
+       Accessibility_Registry_deregisterApplication().  
+       Prior to making this call we obtain a new reference to the
+       registry, which is a temporary hack that helps us handle apps that
+       shut down the bonobo mainloop before we get there.
+
+       * libspi/registry.c:
+       Fix string leakage in debug block, and don't segv if a an app
+       dies before its event notifications have been propagated.
+
+       * cpi/spi_util.c:
+       Modify cspi_check_ev() to call g_warning() rather than g_error(),
+       as stopgap measure until we get proper exception handling when 
+       objects die during or before interrogation.  
+
+       * cspi/spi_main.c:
+       * cspi/spi.h:
+       Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
+       Also changed default value of is_gnome_app to TRUE.
+
+       * test/simple-at.c:
+       * test/keysynth-demo.c:
+       Changed use of SPI_init and SPI_event_main to reflect API change above.
+
+       * test/simple-at.c:
+       Made report_focus_event check the warning value from getName
+       before reporting on focussed accessible; simplifies handling of
+       notifications from dead objects.
+
+       * test/test-simple.c: (Changes not in this patch since source is
+       not in CVS ?)
+       
+2001-12-05  Michael Meeks  <michael@ximian.com>
+
+       * registryd/registryd.c (main): protect against
+       bonobo-activation startup race condition.
+
+       * cspi/spi_main.c (cspi_object_add_check): cope
+       with the exception elegantly.
+
+       * idl/Accessible.idl: decl. ChildGone
+
+       * libspi/desktop.c (spi_desktop_dispose): impl.
+       (spi_desktop_class_init): upd.
+       (spi_desktop_add_application),
+       (spi_desktop_remove_application),
+       (abnormal_application_termination): impl.
+       (impl_desktop_get_child_at_index): re-impl.
+
+       * libspi/registry.c
+       (impl_accessibility_registry_deregister_application),
+       (impl_accessibility_registry_register_application): 
+       kill excessive debug clutter.
+
+       * test/test-simple.c (test_misc): test some NULL
+       tolerance. (main): upd.
+
+       * cspi/spi_main.c (cspi_accessible_is_a): a NULL
+       implements no interfaces - so let's not crash.
+
+       * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
+
+       * libspi/accessible.c (spi_accessible_new_return): impl.
+       helper to calm the cut and paste, to cope with
+       NULL AtkObjects effectively and efficiently, and to kill
+       the referencing bugs.
+
+       * libspi/table.c (impl_getAccessibleAt),
+       (impl_getRowHeader, impl_getColumnHeader): upd.
+
+       * libspi/hyperlink.c (impl_getObject): upd.
+
+       * libspi/accessible.c
+       (impl_accessibility_accessible_get_child_at_index): upd.
+
+       * libspi/component.c
+       (impl_accessibility_component_get_accessible_at_point): upd.
+
+       * test/test-simple.c (test_editable_text, test_text): impl.
+       some simple tests.
+
+       * cspi/spi_editabletext.c
+       (AccessibleEditableText_insertText): constify.
+
+       * test/test-simple.c (focus_me): make more robust.
+
+       * libspi/accessible.c: remove some printfs in methods that
+       we test and work fine, so we can get a clean tree dump.
+
+       * test/test-simple.c (validate_accessible),
+       (validate_tree): make tree dumping pretty too.
+
+       * at-bridge/bridge.c (bridge_signal_listener): upd. so
+       it builds without debug on.
+
+       * test/test-simple.c (validate_accessible): fix the most
+       ludicrous bug.
+
+       * cspi/spi_main.c (spi_object_release): leave the nicely
+       blanked memory around if in debug mode.
+
+       * cspi/spi-listener-impl.c (cspi_event): use add_check.
+
+[committed to fixups2]
+2001-12-05  Michael Meeks  <michael@ximian.com>
+
+       * libspi/editabletext.c
+       (spi_editable_text_class_init): g_type_class_peek_parent,
+       not interface peek - so we finalize cleanly.
+
+       * libspi/accessible.c (spi_accessible_new): kill debug.
+
+       * test/test-simple.c (validate_accessible): fix ref.
+       leak, print strings before freeing them; sigh, comment a
+       chunk out due to strangeness.
+       (validate_tree): unref the child after use.
+
+       * cspi/spi_component.c (AccessibleComponent_getLayer):
+       add missing break statement, switch on zlayer not the
+       uninitialized retval.
+
+       * cspi/spi_main.c (cspi_object_add): add assert, local ref
+       before (possibly re-entering) remote unref.
+
+       * test/simple-at.c (main): unref the desktop.
+
+       * cspi/spi_accessible.c (cspi_accessible_is_a): move 
+       into:
+       
+       * cspi/spi_main.c (cspi_accessible_is_a): here to 
+       isolate bonobo API usage more.
+
+       * libspi/registry.c (impl_accessibility_registry_register_application): 
+       prune bogus comment.
+
+2001-12-04  Michael Meeks  <michael@ximian.com>
+
+       * test/test-simple.c (validate_tree): upd.
+       IndexInParent check to make it more lucid.
+       (validate_accessible): dump the tree.
+
+       * libspi/accessible.c (de_register_public_ref),
+       (get_public_refs): impl.
+       (spi_accessible_new): make more efficient & intuitive.
+       Now IndexInParent check works.
+
+2001-12-04  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi-util.h: remove.
+
+       * cspi/spi.h: move SPI_freeString here
+
+       * libspi/component.c (impl_accessibility_component_get_layer): 
+       warning fixage.
+       (impl_accessibility_component_get_mdi_z_order): ditto,
+       return -1 on error - is this ok ?
+
+       * test/test-simple.c (test_application): impl.
+
+       * cspi/spi_accessible.c (Accessible_getApplication),
+       (Accessible_isApplication): impl.
+
+       * libspi/registry.c (spi_listener_struct_free): release
+       the CORBA reference too.
+
+       * libspi/accessible.c
+       (impl_accessibility_accessible_get_parent): fix ref leak.
+
+       * libspi/registry.c (spi_registry_new): make the registry
+       immortal - we don't want it to go away ever.
+
+       * libspi/application.c
+       (spi_accessible_application_finalize): impl. cleanup.
+
+       * cspi/spi_registry.c
+       (deregisterGlobalEventListenerAll),
+       (deregisterGlobalEventListener),
+       (deregisterAccessibleKeystrokeListener): fix ref leak.
+
+       * cspi/spi_main.c (SPI_init): remove redundant ref.
+
+       * test/test-simple.c (unutterable_horror): impl. to force a
+       clean shutdown.
+       (main): use it.
+
+       * libspi/registry.c
+       (impl_accessibility_registry_deregister_application): release
+       the application when we de-register it.
+
+       * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
+       until we have the infastructure to get it right.
+
+2001-12-03  Michael Meeks  <michael@ximian.com>
+
+       * libspi/Makefile.am: only build eventlistener.[ch]
+
+       * libspi/accessible.c
+       (impl_accessibility_accessible_get_child_at_index): don't leak.
+
+       * at-bridge/bridge.c (bridge_exit_func): cope with an exit
+       before we hit the idle handler.
+
+       * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
+       debugging than exit.
+
+       * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
+
+       * libspi/listener.c (impl_notify_event): check source
+       not NIL before unref.
+
+       * libspi/registry.c (impl_registry_notify_event): ditto.
+
+       * libspi/eventlistener.c
+       (impl_accessible_event_notify_event): unref the source.
+
+       * libspi/accessibleeventlistener.c
+       (impl_accessible_event_notify_event): unref the source.
+
+       * idl/Event.idl: remove 'hash_id' attribute - of no
+       concievable use.
+
+       * libspi/application.c (notify_listeners): upd list
+       iteration & sig.
+       (spi_application_object_event_listener), 
+       (spi_application_toolkit_event_listener): upd to do correct
+       CORBA ref counting.
+
+       * libspi/registry.c
+       (_registry_notify_listeners): update.
+       (parse_event_type): this method also leaks like a sieve.
+       (impl_accessibility_registry_deregister_global_event_listener): 
+       fix ETYPE_WINDOW case.
+
+       * libspi/application.c
+       (impl_accessibility_application_register_object_event_listener): 
+       kill leak.
+
+       * libspi/hyperlink.c (impl_getObject): fix ref mistake.
+
+       * libspi/hypertext.c (impl_getLink): ditto.
+
+       * cspi/spi_main.c (cspi_object_add): remove
+       bogus CORBA_Object_duplicate.
+
+       * cspi/spi-listener-impl.c (cspi_event): dup/ref
+       on the object_add.
+
+       * cspi/spi_accessible.c
+       (Accessible_getRelationSet): fix leak / referencing issue.
+
+       * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
+       (cspi_object_add, cspi_object_unref): upd.
+       (spi_object_release, get_live_refs): impl.
+       (cspi_cleanup): simplify.
+
+       * *.[ch]: s/boolean/SpiBoolean/
+
+       * cspi/spi_accessible.c (role_names): actualy order so it
+       corresponds with the enum !
+
+       * test/test-simple.c (test_roles): check some role strings
+       vs. enums to detect offset errors.
+
+2001-12-01  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi_main.c (cspi_object_add_check): impl. helper.
+
+       * cspi/spi_accessible.c (Accessible_getChildAtIndex):
+       check ev before 
+       (Accessible_getChildAtIndex): use cspi_add_check so we
+       check the ev before using a (possibly) invalid value.
+
+       * libspi/accessible.c
+       (impl_accessibility_accessible_get_parent): don't segv
+       on a NULL parent.
+
+       * at-bridge/bridge.c (gtk_module_init): upd.
+       (bridge_property_event_listener): don't leak strings
+       and events !
+       (bridge_state_event_listener),
+       (bridge_property_event_listener): don't use a static
+       buffer in case of recursive event emission &
+       re-enterancy - split out the swathe of cut and paste
+       into:
+       (emit_eventv): and fix 2 ref leaks here & comply to the
+       coding style.
+       (bridge_register_app): rename to 
+       (bridge_idle_init): this and kill arg parsing, split
+       various inits & bonobo-activation registration to module
+       init time, kill referencing error.
+       (bridge_exit_func): fix the same leak.
+       (bridge_focus_tracker): don't leak event structures
+       and strings.
+       (bridge_signal_listener): more leakage and cut & paste
+       fixage.
+       (bridge_key_listener): return the result - FIXME is
+       this polarity correct ?
+       (accessibility_keystroke_from_atk_key_event): rename
+       (accessibility_init_keystroke_from_atk_key_event): and stop
+       leakage.
+       (gtk_module_init): return a value - not that it is checked by
+       Gtk - but hey.
+       (bridge_key_listener): register my horror at casting between
+       IDL defined structs.
+       (bridge_get_registry): kill - not used.
+
+       * cspi/spi_accessible.c (Accessible_getRole): make return const.
+
+       * test/test-simple.c (test_roles): impl.
+       (test_desktop, validate_accessible, validate_tree): impl.
+
+       * cspi/spi_accessible.c (role_names): fixup bogus
+       MAX_ROLES setup, make constants const for efficient linkage
+       (AccessibleRole_getName): conform to coding style, make
+       return 'const'
+
+2001-11-30  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi.h: add missing prototype.
+
+       * libspi/registry.c (spi_listener_struct_new): fix sig.
+
+       * test/Makefile.am: add test-simple
+
+       * test/test-simple.c: add
+
+       * test/test.sh: add.
+
+       * cspi/spi_main.c (SPI_init): make SPI_inited module global,
+
+       * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
+       do it straight - since otherwise we often get an activation race.
+
+[ work before Bill duplicated a chunk of it ... ]
+2001-11-30  Michael Meeks  <michael@ximian.com>
+
+       * libspi/keystrokelistener.c
+       (spi_keystroke_listener_class_init): fixup arg
+       count (doh).
+
+       * libspi/eventlistener.c
+       (spi_event_listener_class_init): ditto.
+
+       * tests/test.sh: add.
+
+       * cspi/spi-listener-impl.h: update macros.
+
+       * cspi/spi-listener-impl.c
+       (cspi_event_listener_remove_callback): add
+       correct pre-conditions.
+
+       * cspi/spi_main.c (SPI_exit): guard vs. double
+       exits, exit the mainloop nicely.
+       (SPI_event_main): make more sense.
+       (SPI_init): move the atexit evilness here so we
+       always do it (yuck).
+       (SPI_event_main): upd.
+
+       * test/simple-at.c: update for listener changes.
+
+       * registryd/registryd.c (main): prune kruft.
+
+       * libspi/libspi.h: upd.
+
+       * libspi/eventlistener.[ch]: rename broken macros.
+
+       * libspi/accessibleeventlistener.[ch]: remove.
+
+       * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
+
+       * test/test-simple.c: Add - automated tests.
+
+       * cspi/spi-listener-impl.c (cspi_event),
+       (cspi_key_event): add user_data to invoke.
+       (cspi_keystroke_listener_finalize): impl.
+       (cspi_keystroke_listener_class_init): upd.
+
+       * cspi/spi_event.c
+       (createAccessibleEventListener),
+       (AccessibleEventListener_addCallback),
+       (createAccessibleKeystrokeListener),
+       (AccessibleKeystrokeListener_addCallback): upd.
+
+       * libspi/deviceeventcontroller.c
+       (spi_device_event_controller_check_key_event): add public proto.
+
+       * libspi/registry.c
+       (impl_accessibility_registry_deregister_global_event_listener): 
+       always init listeners.
+       (_registry_notify_listeners): yes it is.
+
+       * cspi/spi-listener-impl.c (cspi_key_event): 
+       move debug to here.
+       (cspi_event_listener_finalize): impl.
+       (cspi_event_listener_class_init): hook up.
+       (event_handler_new, event_handler_free),
+       (event_list_remove_by_callback): impl.
+       (cspi_event_listener_remove_callback),
+       (cspi_keystroke_listener_remove_callback),
+       (cspi_keystroke_listener_add_callback),
+       (cspi_event_listener_add_callback): upd.
+
+       * libspi/keystrokelistener.c
+       (keystroke_listener_object_finalize): kill
+       (spi_keystroke_listener_class_init): upd.
+       (spi_keystroke_listener_add_callback),
+       (spi_keystroke_listener_remove_callback): kill,
+       use signals.
+       (impl_key_event): prune drasticaly.
+
+       * libspi/eventlistener.c
+       (spi_event_listener_add_callback),
+       (spi_event_listener_remove_callback): kill, use
+       signals.
+       (impl_accessible_event_notify_event): upd.
+       (spi_event_listener_object_finalize): remove.
+
+       * libspi/Makefile.am: use eventlistener.[ch]
+
+2001-12-04  Bill Haneman  <bill.haneman@sun.com>
+
+       * libspi/registry.c (_registry_notify_listeners):
+       Changed listener loop iteration to use preferred convention.
+       Got rid of string memory leaks caused be calling g_strconcat
+       inside function calls.
+
+       * libspi/registry.c (parse_event_type):
+       Stopped g_strconcat memory leaks, free the g_strsplit return,
+       g_strdup the split pieces when used, etc.
+
+2001-12-04  Bill Haneman  <bill.haneman@sun.com>
+
+       * idl/State.idl: 
+       Change method 'compare' to return a 'difference set' rather than
+       taking a StateSet as an out parameter (more Java-friendly).
+
+       * idl/Accessible.idl:
+       Added CORBA struct 'BoundingBox', to faciliate API changes below:
+       
+       * idl/Component.idl:
+       * idl/Image.idl:
+       Changed methods 'getExtents' and 'getImageExtents' in these
+       interfaces to return a BoundingBox structure.  
+       (getPosition and getSize are redundant and possibly should be
+       removed, rather than creating a corresponding Point struct.)
+
+       * cspi/spi_component.c:
+       Modify implementation of getExtents to reflect the above IDL
+       change.
+       
+       * cspi/spi_image.c:
+       * cspi/spi.h:
+       Add (missing) AccessibleImage_getExtents () API.
+
+       * docs/reference/cspi/at-spi-cspi-sections.txt:
+       Added AccessibleImage_getImageExtents () to docs.
+       
+2001-12-03  Bill Haneman  <bill.haneman@sun.com>
+
+       * idl/Component.idl:
+       Added two methods, getLayer () and getMDIZOrder (), to reflect
+       the new ATK methods atk_object_get_layer and
+       atk_object_get_mdi_z_order. (Which arguably should be part of the
+       AtkComponent API and AtkObject).  Also added an enum,
+       ComponentLayer, for the first method's return value.
+
+       * libspi/component.c:
+       Added implementations for these methods.
+
+       * cspi/spi_component.c:
+       * cspi/spi.h:
+       Added cspi binding methods for above, 
+       AccessibleComponent_getLayer() and
+       AccessibleComponent_getMDIZOrder().
+       Added cspi enum 'AccessibleComponentLayer'.
+
+       * docs/reference/cspi/at-spi-cspi-sections.txt:
+       Added above methods to docs.
+
+       * cspi/spi-impl.h:
+       * cspi/spi*.[ch]:
+       Changed typedef for 'boolean' type (and all references to it) to
+       SPIBoolean, to avoid keyword clashes with C++.
+
+       * test/simple-at.c:
+       Changed usages of 'boolean' to SPIBoolean.
+
+       * test/keysynth-demo.c:
+       Changed usages of 'boolean' to 'gboolean' (since this is a gnome
+       app), except where SPIBoolean is required by the callbacks API.
+       
+2001-12-02  Bill Haneman  <bill.haneman@sun.com>
+
+       * cspi/spi_registry.c:
+       Removed obsolete X event loop for passive keygrabs (which now
+       lives in libspi).
+
+       * registryd/registryd.c:
+       Removed unnecessary call to gdk_init() [cruft]. This also allows
+       removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
+       * configure.in.
+
+2001-11-28  Bill Haneman  <bill.haneman@sun.com>
+
+       * docs/reference/cspi:
+       Included docs for SPI_freeString in generated documentation.
+
+       * cspi/spi-util.c:c
+       Renamed spi_freeString to SPI_freeString, for consistency.  Added
+       documentation for this function.
+
+       * cspi/spi-util.h:
+       Renamed spi_freeString to SPI_freeString, for consistency.  
+       Removed obsolete method declaration string_from_corba_string.
+
+       * test/keysynth-demo.c:
+       Small tweak to comments.
+
+       * test/simple-at.c:
+       Stopped leaking the strings returned from CSPI. 
+
+2001-11-28  Bill Haneman  <bill.haneman@sun.com>
+
+       Merged Michael's branch (see his ChangeLog entries below).
+       
+       * at-bridge/bridge.c: Explicitly hold a ref to the registry while
+       bridge is alive, release on exit.
+       
+       * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
+       Fix type check macro.
+       
+       * cspi/spi_event.c:
+       Added AccessibleKeystrokeListener_unref() method to reduce leakage.
+       
+       * cspi/spi_main.c: 
+       Added is_gnome_app static, and method cspi_is_gnome_app(), 
+       so we can call the appropriate shutdown routine at exit in SPI_exit.
+       
+       * cspi/spi_main.c (cspi_object_ref):
+       Duplicate the corba object passed in, since we're keeping it around.
+       
+       * cspi/SPI_exit.c, cspi_cleanup:
+       Moved the releasing of the live refs to its own function, so we
+       can put it in g_atexit ().  Call the appropriate shutdown API
+       depending on whethe calling client is a gnome app or not
+       (bonobo_main_quit or CORBA_ORB_shutdown).
+       
+       * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
+       Unref the listener when this method is called, after
+       deregistration.  Updated the API docs to note this behavior.
+
+       * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
+       Bugfixes: Ref the bonobo object when returning a parent or child 
+       reference, or an AccessibleRelation.  Generally made sure
+       BonoboObject refcount is incremented whenever we return an
+       Accessible.
+
+       * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
+       Fixed typo/bug in signal declaration.
+       
+       * libspi/accessibleeventlistener.h:
+       Fixed a type macro.
+
+       * libspi/application.c (spi_application_new):
+       Fixed leak in initialization.
+
+       * libspi/desktop.c:
+       Remembered to increment bonobo-object refcount when returning
+       children (applications) from desktop object.
+       Added (empty) finalize method.
+
+       * libspi/deviceeventcontroller.c:
+       Hold a ref to listeners inside DEControllerKeyListeners.
+       Added dec_key_listener_free() method.  Use prepend instead of
+       append in key_listener list.  Fixed some refcount madness and
+       leaks in the listener registration/deregistration - deregistration
+       now calls dec_key_listener_free() on listeners, and on the
+       temporarily constructed dec_key_listener() used to perform the search/match.
+
+       * libspi/hypertext.c (spi_hypertest_finalize):
+       Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
+       class.  Also fixed spi_hypertext_interface_new() and
+       SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
+
+       * libspi/hypertext.h: 
+       Removed pointless and duplicate AtkObject pointer from
+       SpiHypertextClass.
+
+       * libspi/keystrokelistener.c:
+       Fixed incorrect type of keystroke_listener_parent_class,
+       renamed keystroke_listener_object_finalize to
+       spi_keystroke_listener_object_finalize.
+       Fixed typo in signal declaration
+       (spi_keystroke_listener_class_init).
+
+       * libspi/registry.c:
+       Added funcsions spi_listener_struct_new() and
+       spi_listener_struct_free() to help with memory management issues.
+       We also now use these methods instead of gnew + poking stuff into
+       the struct, and to decrement listener counts/free the listeners
+       when deregistering them.
+       Fix more refcount bugs in getDesktop() and
+       getDeviceEventController().  
+
+       * test/simple-at.c:
+       De-ref the desktop after enumerating the applications.  Explicitly
+       decrement the refcounts on the created listeners on exit (using
+       _unref for keystroke listeners, and via the
+       deregisterGlobalEventListenerAll command for other event
+       listeners).
+       
+2001-11-27  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi-listener.h: fixup enum.
+
+2001-11-27  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi-listener-impl.c (cspi_event_listener_new),
+       (cspi_keystroke_listener_new): Use the cspi variants.
+
+2001-11-26  Michael Meeks  <michael@ximian.com>
+
+       * test/keysynth-demo.c: fix 2 compile warnings, missing
+       type in decl. etc.
+
+       * test/simple-at.c (report_focussed_accessible),
+       (report_focus_event, report_button_press),
+       (check_property_change, is_command_key),
+       (report_ordinary_key_event, report_command_key_event): upd.
+
+       * util/mag_client.h: include pre-requisites.
+
+       * libspi/accessibleeventlistener.c
+       (spi_event_listener_object_finalize): free any lingering
+       callbacks.
+       
+       * libspi/keystrokelistener.c
+       (keystroke_listener_object_finalize): ditto.
+
+       * cspi/spi-listener-impl.[ch]: Add to implement cspi style
+       callbacks, with cspi types.
+       
+       * cspi/spi_event.c (createAccessibleEventListener): chain to
+       (AccessibleEventListener_addCallback): here.
+       (createAccessibleKeystrokeListener): chain to 
+       (AccessibleKeystrokeListener_addCallback): here.
+
+       * libspi/keystrokelistener.c
+       (spi_keystroke_listener_class_init): add signal.
+       (impl_key_event): emit the event.
+       (boolean_handled_accumulator): impl.
+       (marshal_BOOLEAN__POINTER): add, gack.
+
+       * libspi/accessibleeventlistener.c
+       (spi_event_listener_class_init): add signal.
+       (impl_accessible_event_notify_event): emit the signal &
+       make the loop efficient.
+       (spi_event_listener_add_callback): prepend the callback.
+
+       * libspi/accessibleeventlistener.h: add an 'event' signal,
+       decl type on callback.
+
+       * libspi/keystrokelistener.h: ditto.
+
+       * cspi/spi-listener.h: make methods typesafe and
+       make them use the new event typedefs.
+
+       * test/simple-at.c (report_focussed_accessible):
+       include mag_client.h
+       Use *(void *)text_interface not the other thing.
+       
+       * configure.in: add gtk to registryd bits - since we use
+       gdk there ( why ? )
+
+       * util/magnifier.c: include libbonobo.h
+       
+2001-11-25  Bill Haneman  <bill.haneman@sun.com>
+
+       * test/keysynth-demo.c:
+       Turned this into a simple scanning keyboard, to demonstrate the
+       use of g_timeout_add () as a means of creating timers for
+       scanning, and the use of GtkStyle for visually indicating when
+       virtual keyboard elements are selected.
+
+       keysynth-demo now listens to any keyboard keys with zero-valued
+       keycodes (i.e. 'unused' keys) and interprets them as
+       single-switches.
+
+       Reworked the shiftlatch code so that shift-down state isn't held
+       for long periods (it's only synthesized immediately prior to
+       the keysynth event it's modifying).  Note that shiftlatch in this
+       demo is a convenience, not intended to take the place of AccessX 
+       which is the better choice for getting 'sticky' modifier keys.
+
+       * libspi/deviceeventcontroller.c:
+       * at-bridge/bridge.c:
+       * cspi/spi_registry.c:
+       Removed some debug print stuff, and put other verbosity in #ifdef
+       blocks.
+
+       * util/magnifier.c:
+       * util/mag_image.h:
+       Implemented some more of the magnifier IDL for the simple
+       magnifier: namely, getZoomRegionParams. 
+       Added mag_x and mag_y members to MagnifierData struct, aid of this
+       implementation.
+       Added GtkWindow::realize signal handler to magnifier, to keep it
+       from receiving keyboard focus from the WM.
+
+2001-11-23  Mark McLoughlin  <mark@skynet.ie>
+
+       * cspi/spi-private.h: my guess at what michael forgot
+       before he ran off to NZ :-)
+
+2001-11-23  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi_event.c (AccessibleEventListener_removeCallback):
+       comment out non existant method invoke so we link.
+
+       * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
+       use bonobo_exception_get_text for more friendly warnings.
+
+       * cspi/spi.c (Obj_Add): move into spi_main & rename
+       spi_object_add; kill spi.c
+
+       * cspi/spi_registry.c
+       (deregisterGlobalEventListener),
+       (deregisterGlobalEventListenerAll),
+       (registerGlobalEventListener): fix exception leaks.
+
+       * cspi/spi_main.c (spi_exception): impl. helper, so we
+       don't leak exceptions.
+
+       * cspi/spi_selection.c
+       (AccessibleSelection_deselectSelectedChild): return the
+       success state.
+
+       * cspi/spi_main.c (spi_ev): impl; hack - gack.
+       (spi_registry): ditto.
+       (SPI_init): guard against double inits.
+
+       * cspi/*.c: use spi_ev (), and spi_registry () where
+       appropriate - a temporary hack until we have something
+       better. Use spi_object_add
+
+2001-11-22  Michael Meeks  <michael@ximian.com>
+
+       * cspi/Makefile.am: re organise, install the headers.
+
+       * cspi/*.h: add G_BEGIN/END_DECLS
+
+2001-22-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * test/simple-at.c:
+       Added non-preemptive keylistener for key events with no modifiers
+       and shift-only modifier.
+
+       * libspi/keystrokelistener.c:
+       Removed some verbose diagnostics printout.
+
+       * cspi/spi_registry.c:
+       Fixed a bug that caused all key listeners to be registered as
+       pre-emptive.
+       
+       * libspi/deviceeventcontroller.c:
+       Fixed bug that caused XGrabKey (preemptive key grab) to be called
+       for non-preemptive key masks.
+
+
+2001-22-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * docs/reference/idl/at-spi-idl-docs.sgml:
+       * docs/reference/idl/at-spi-idl-sections.txt:
+       * docs/reference/idl/at-spi-idl-overrides.txt:
+       Added missing files.
+
+       * docs/reference/Makefile.am:
+       removed idl from SUBDIRS until we can figure a way to get gtk-doc
+       to scan the IDL files :-(
+
+       * docs/reference:
+       * docs/cspi:
+       * docs/idl:
+       Added .cvsignore files.
+       
+2001-21-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * libspi/deviceeventcontroller.c:
+       * libspi/keystrokelistener.c:
+       * cspi/spi_event.c:
+       * cspi/spi_registry.c:
+       Added filters for KeySets, KeyEventSeq, and event types to key
+       event dispatching, so listeners should only receive those events
+       that they requested :-)
+
+2001-21-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * configure.in:
+       * docs/Makefile.am:
+       * docs/reference:
+       * docs/reference:Makefile.am:
+       * docs/reference/cspi:
+       * docs/reference/cspi:Makefile.am:
+       * docs/reference/cspi:tmpl:
+       * docs/reference/cspi:tmpl:*.sgml:
+       * docs/reference/idl:
+       * docs/reference/idl:Makefile.am:
+       * docs/reference/idl:at-spi-idl-sections.txt:
+       * docs/reference/idl:at-spi-idl-docs.sgml:
+       * docs/reference/idl:tmpl:
+       * docs/reference/idl:tmpl:*.sgml:
+
+       Restructured docs directory to allow separate 'reference' docs
+       section, and forked idl and cspi docs.  Added the sgml template
+       files to CVS.  Added the first sections/structural sgml for the
+       IDL docs.
+
+2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
+
+       * configure.in, libspi/Makefile.am: find libXtst.
+
+2001-11-21  Michael Meeks  <michael@ximian.com>
+
+       * test/accessx-gui.c: s/spi_value/value/ - doh.
+
+       * libspi/base.[ch]: add.
+
+2001-18-11  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Accessible.idl:
+       * idl/Application.idl:
+       * idl/Registry.idl:
+       * idl/Action.idl:
+       Started gtk-doc cleanup on IDL.
+
+       * libspi/deviceeventcontroller.c:
+       Added and connected non-preemptive key notification from the
+       toolkits (in addition to the pre-emptive support from XServer
+       which we had before, but which causes 'focus flashing').  Filters
+       are presently limited to key modifiers and global/non-global,
+       KeySets are presently ignored, as are KeyEvent masks.
+
+       Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
+       structs into the persistant structure rather than just storing
+       pointers to things that might not persist across servant
+       invocations.
+
+       The XGrabKey call now does async keygrabs, because synchronous
+       ones were deadlocking with GDK_event code in a very nasty way.
+
+       Added boolean to internal method notify_keylisteners, to indicate
+       whether the event came from the 'toolkit source' or the 'global
+       (XServer) source' - this is used in the notification process to
+       determine which listeners to send the event to.
+
+       deviceeventcontroller.c is now warning-free.
+       
+       * libspi/registry.c:
+       Fixed regression in application de-registration.
+       Also fixed some really brain-dead weirdness having to do with
+       event dispatching - event structs are now duplicated before being
+       re-marshalled in the dispatch to listeners.  This also fixes a
+       Solaris build problem.
+       
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/registry.c
+       (impl_accessibility_registry_deregister_global_event_listener): 
+       segv. protection.
+
+       * libspi/deviceeventcontroller.c
+       (spi_device_event_controller_check_key_event): return
+       FALSE on no virtual method.
+
+       * libspi/*..h: make includes work on a correctly pathed install.
+
+       * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
+
+       * libspi/application.h: kill unused ( and whacked out )
+       gboolean *spi_application_set_id (AtkObject *app, long id);
+
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/*.[ch]: further convert to bonobo's type func
+       macros, remove redundnant casts etc.
+
+       * libspi/text.c s/accessibility_text/spi_text/g,
+       re-order to de-cruft.
+
+       * libspi/hypertext.c: re-order to kill a huge slew
+       of redundant forward decls.
+
+       * libspi/relation.c: ditto.
+
+       * libspi/image.c: ditto.
+
+       * */.cvsignore: update
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/deviceeventcontroller.c
+       (_controller_register_with_devices): use g_getenv,
+       kill stdlib.h include.
+
+       * libspi/keystrokelistener.c
+       (spi_keystroke_listener_get_type): kill
+       (spi_keystroke_listener_class_init),
+       (spi_keystroke_listener_init): rename to this.
+
+       * libspi/text.c (impl_getAttributes): fix warning / bug.
+
+       * libspi/*.[ch]: more headers, includes and over commenting.
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/*.[ch]: fixup headers, includes and over commenting.
+
+       * libspi/image.c (impl__get_imageDescription): const
+       correctness warning fix. remove redundant casting.
+
+       * libspi/table.c (impl_getRowDescription): ditto.
+       (impl_getColumnDescription): ditto.
+
+       * libspi/libspi.h: add.
+
+2001-19-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/editabletext.c (impl_setAttributes): fix warnings.
+
+       * libspi/component.c (accessibility_component_get_type): 
+       rename to (spi_component_get_type): and macroify.
+       (accessibility_component_init): rename to
+       (spi_component_init): this
+       (accessibility_component_class_init): rename to
+       (spi_component_class_init): this
+
+       * libspi/action.c (spi_action_get_type): kill, use the macro.
+
+       * libspi/deviceeventcontroller.c (_compare_listeners): re-order
+       to avoid prototype.
+
+       * libspi/application.c (spi_application_object_event_listener),
+       (impl_accessibility_application_register_object_event_listener):
+       warning fixes / const understanding updates.
+
+       * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
+       warning fixes.
+
+2001-18-11  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/spi_accessible.c: Added docs and C bindings for
+       AccessibleStateSet. (No implementations yet).  Documentation
+       coverage for C bindings now 100%. Made docs for event listeners
+       more explicit.
+       
+       * idl/Registry.idl:
+       Added methods 
+            boolean notifyListenersSync (in DeviceEventListener listener,
+                                    in DeviceEvent event);
+
+            oneway void notifyListenersAsync (in DeviceEventListener listener,
+                                         in DeviceEvent event);
+
+       Added DeviceEventListener and DeviceEvent structs (may deprecate
+       KeyStroke and KeystrokeListener in favor of this generic
+       event/listener framework for devices).
+
+       * libspi/deviceeventcontroller.c:
+
+       Changed some key listener code to take masks, etc., and paved the
+       way for integration of toolkit/non-preemptive key events. Changed
+       signatures of some internal methods.
+
+       * at-bridge/bridge.c:
+        Fixed regression connecting to interface signals, apparently
+       caused by GTK+ changes.
+
+       Added an internal bridge_state_listener to deal with
+       property-change:accessible-state signals.
+
+       Changed the key_listeners GList to store structs (including masks,
+       etc.) instead of just CORBA_Objects (required for full
+       implementation of key listener API).
+
+       Connected the bridge to all currently supported Atk signals.
+       Events now supported: 
+           object:property-change
+            object:property-change:accessible-name
+            object:property-change:accessible-state
+            object:property-change:accessible-description
+            object:property-change:accessible-parent
+            object:property-change:accessible-value
+            object:property-change:accessible-role
+            object:property-change:accessible-table-caption
+            object:property-change:accessible-table-column-description
+            object:property-change:accessible-table-column-header
+            object:property-change:accessible-table-row-description
+            object:property-change:accessible-table-row-header
+            object:property-change:accessible-table-summary
+            object:children-changed
+            object:visible-data-changed
+            object:selection-changed
+            object:text-selection-changed
+            object:text-changed
+            object:text-caret-moved
+            object:row-inserted
+            object:row-reordered
+            object:row-deleted
+            object:column-inserted
+            object:column-reordered
+            object:column-deleted
+            object:model-changed        
+
+2001-16-11  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/hyperlink.c,h:
+       Fixed some broken stuff in hyperlink.
+       
+       * libspi/relation.h:
+       * libspi/relation.c:
+       * cspi/spi_accessible.c:
+       Initial implementations of AccessibleRelation methods, and docs.
+
+       * libspi/accessible.c:
+       Fixed a bug that caused SEGV  if an accessible
+       object's description is NULL, and a client
+       requests it.  An empty string is now returned.
+
+       * cspi/spi_editabletext.c:
+       * cspi/spi_hypertext.c:
+       * cspi/spi_image.c:
+       * cspi/spi_hyperlink.c:
+       * cspi/spi_table.c:
+       Added docs.  
+
+       Doc coverage now 95%.
+
+2001-16-11  Bill Haneman <bill.haneman@sun.com>
+
+       One last namespacing revision:
+       * libspi/accessibleeventlistener.[ch]:
+       Renamed SpiAccessibleEventListener to SpiEventListener,
+       (no need for two namespaces ;-)
+
+       And lots of documentation fixes:
+
+       * docs/at-spi-docs.sgml:
+       Fixed 'underscore vs. hyphen' bug that was preventing
+       the gtk-doc API docs from being automatically generated.
+
+       * cspi/spi-impl.h
+       * cspi/spi-listener.h
+       * cspi/spi.h
+       * cspi/spi_accessible.c
+       * cspi/spi_action.c
+       * cspi/spi_application.c
+       * cspi/spi_component.c
+       * cspi/spi_editabletext.c
+       * cspi/spi_event.c
+       * cspi/spi_hypertext.c
+       * cspi/spi_main.c
+       * cspi/spi_registry.c
+       * cspi/spi_selection.c
+       * cspi/spi_text.c
+       * cspi/spi_value.c
+       * docs/Makefile.am
+       * docs/at-spi-docs.sgml
+       * docs/at-spi-sections.txt
+       
+       Added and fixed up gtk-doc documentation in cspi.
+       
+       Interfaces now (fully) documented (subject to revision and enhancement):
+       SPI_main
+       Event Listener Support
+       Registry API
+       AccessibleApplication
+       Accessible
+       AccessibleAction
+       AccessibleComponent
+       AccessibleEditableText
+       AccessibleSelection
+       AccessibleText
+       AccessibleValue
+
+       still pending:
+       AccessibleStateSet
+       AccessibleRelationSet
+       AccessibleImage
+       AccessibleTable
+       AccessibleHyperlink
+       
+2001-14-11  Bill Haneman <bill.haneman@sun.com>
+
+       * at-bridge/bridge.c:
+       Initial work for toolkit-level key snooper connection by bridge.
+
+       * cspi/spi-impl.h:
+       * cspi/spi_*.h:
+       * cspi/spi_*.c:
+       New typedefs and fixes to support new namespacing, and cleaner
+       separation of cspi bindings from libspi bonobo implementation.  
+       Removed inconsistent and extraneous Spi* namespace prefix that
+       had crept into cspi headers.
+       Lots of comment fixes that sed had missed.
+
+       * cspi/spi-roletypes.h:
+       * cspi/spi-statetypes.h:
+       Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
+       to AccessibleRoleType.
+       
+       * libspi/accessibleeventlistener.h:
+       Fixed minor namespacing weirdness.
+
+       * libspi/deviceeventcontroller.c:
+        Reordered some internal API for device listeners.
+       Changed the key registry final boolean to 'is_system_global'
+       rather than 'is_synchronous', which is more descriptive of its 
+       actual meaning.
+       Added spi_device_event_controller_new().
+       Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
+        
+       * libspi/keystrokelistener.[ch]:
+       Namespaced KeystrokeListener to SpiKeystrokeListener.
+       Changed uses of keymasks to use SPI_ prefix, and did other
+       knock-on fixups.
+
+       * libspi/keymasks.h:
+       Namespaced keymask constants with SPI_ prefix.
+
+       * libspi/registry.c:
+       Some warning fixes, and knock-on fixes from namespace changes.
+
+       * test/Makefile.am:
+       Added rules for accessx-gui test program.
+
+       * test/accessx-gui.c:
+       Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
+       utility.  It doesn't actually use at-spi, but it's still cool and
+       useful ;-)
+
+       * test/keysynth-demo.c:
+       * test/simple-at.c:
+       * test/at.c:
+       * test/app.c:
+       Fixes so that these test clients work properly with the namespaced
+       libraries. (Incompletely tested for technical reasons, fixes may follow)
+       
+
+2001-13-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/application.c
+       (impl_accessibility_application_get_version),
+       (impl_accessibility_application_get_toolkit_name):
+       warning fixes.
+       (impl_accessibility_application_set_id),
+       (impl_accessibility_application_get_id): remove
+       redundant casting code.
+
+       * libspi/action.c (impl_getDescription): fix warnings.
+
+       * libspi/accessible.c
+       (impl_accessibility_accessible_get_parent),
+       (impl_accessibility_accessible_get_child_at_index),
+       (impl_accessibility_accessible_get_state),
+       (impl_accessibility_accessible_get_relation_set):
+       warning fixes & include action.h
+
+2001-13-11  Michael Meeks  <michael@ximian.com>
+
+       * *.[ch] fix bits I screwed up:
+
+               s/([^ \tb(\*\&\?\",])spi_/\1/g;
+               s/([^ \tb(\*\&\?\",])Spi/\1/g;
+       
+2001-13-11  Michael Meeks  <michael@ximian.com>
+
+       * *.[ch] Namespace libspi into spi_ and Spi.
+
+2001-13-11  Michael Meeks  <michael@ximian.com>
+
+       * Makefile.am: dist & install at-spi-1.0.pc
+
+       * libspi/Makefile.am: install into at-spi-1.0
+
+       * idl/Makefile.am (idldir): install into at-spi-1.0
+
+       * at-spi-1.0.pc.in: add.
+
+       * configure.in: build it.
+
+2001-12-11  Bill Haneman <bill.haneman@sun.com>
+
+        * test/keysynth-demo.c:
+        Use a 'realize' signal-handler to set the WM properties for
+        the virtual keyboard, rather than making it a "POPUP" type
+        override-redirect window (thanks to anders carlsson for that
+        tip!)
+
+2001-11-11  Bill Haneman <bill.haneman@sun.com>
+
+       * test/Makefile.am:
+       * test/keysynth-demo.c:
+       Added new test of key synthesis, which creates a simple
+       (mouse-operated) onscreen keyboard.  It inserts key events into
+       the currently-focused window, thus it does not grab keyboard focus
+       itself.
+
+       * cspi/spi_registry.c:
+       Added C binding for AT-SPI generateKeyEvent.
+
+       * libspi/deviceeventcontroller.c:
+       Added call to XFilterEvent so that key listener works with XIM (we
+       hope).  Added event_synth_type to generateKeyEvent, so that we can
+       produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
+       synthesize a press/release pair for KeySyms.    
+       
+2001-11-09  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/Makefile.am: 
+       * registryd/Makefile.am:
+       (temporary) hack to include libXtst in libspi and registryd.
+       (Needed for keystroke synthesis, see below).
+
+       * idl/Registry.idl:
+       Improved API for registerKeystrokeListener, in accordance with
+       discussions with Gnopernicus team and X server research.
+
+       * libspi/registry.c:
+       * libspi/deviceeventcontroller.c:
+       * libspi/accessible.c:
+       * libspi/keystrokelistener.c:
+       Changes and fixes to support keylisteners for potentially
+       consumed key events (that is, 'passive grabs').
+       Added implementation for generateKeyEvent() [untested].
+
+       * cspi/spi.h:
+       Changes to registerKeystrokeListener() API, as above.
+       Added deregisterGlobalEventListenerAll(), and 
+       deregisterKeystrokeListener(), which are needed for clean exit of
+       clients.
+       Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
+       and a macro ALL_KEYS which may be used in place of a KeySet pointer.
+       
+       * cspi/spi_registry.c:
+       Added implementations of function prototypes mentioned above.
+       
+       * registryd/registryd.c:
+       Added the key listener event source as a g_timeout(), to allow
+       receipt of key events that are not caught by GDK (since GDK
+       doesn't support passive keygrabs, this was necessary).
+
+       * test/simple-at.c:
+       Changed to attach a keylistener to 'Alt' keys, and
+       respond to the following keycommands: Alt-M (toggle magnifier);
+       Alt-F (toggle speech); Alt-Q (quit).
+       Added an exit routine to deregister the listeners, and a key
+       listener that prints some key info to the console when a key
+       matches the listener mask (and is thus received by the listener).
+       
+       * util/idl/Magnifier.idl:
+       Changes to magnifier API to support multiple zoom regions,
+       non-uniform scaling in x and y, markDirty, and a host of other
+       features that would be useful to magnification.
+
+       * util/mag_image.h:
+       * util/mag_client.c:
+       * util/mag_client.h:
+       * util/mag_control.c:
+       * util/magnifier.c:
+       Source code changes to support the above IDL changes.
+       
+       * util/mag_image.c:
+       As above, and also changes to use a (slower) generic conversion
+       path for colormap conversions, since the fast RGB conversions have been
+       reported to fail for 16-bit displays.
+
+2001-10-26  Michael Meeks  <michael@ximian.com>
+
+       * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
+
+<2001-10-26  Laszlo Peter <laca@ireland.sun.com>
+
+       * at-bridge/Makefile.am: fix LDFLAGS.
+
+<2001-10-09  Bill Haneman <bill.haneman@sun.com>
+
+       * at-bridge/bridge.c:
+       Re-worked listeners for toolkit events, now we have signal
+       and property listeners. Added a private method
+       register_atk_event_listeners(), which registers with the
+       various atk and gtk signals we need to monitor in order to emit
+       our at-spi events.
+       Added emission hook for AtkObject:property-change events, to
+       support the 'property listeners'.
+       Fixed some alloc()s of Accessibility_Event structs to use CORBA
+       allocation.
+
+       * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
+       which emit warnings and exit, respectively, if CORBA errors occur
+       during remote calls, and we now use these methods to check most of
+       our CORBA calls in the C bindings.
+
+       * cspi/spi_accessible.c:
+       Changed AccessibleSelection_refSelectedChild() to
+       AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
+       now increment refcounts.
+
+       * cspi/spi_component.c:
+       Fixed some long pointer casts (dangerous!) to pass pointers to
+       CORBA_longs of the proper type to the CORBA stubs, and copy the
+       data into the longs that were passed into the C bindings code.
+       
+       * at-bridge/bridge.c:
+       
+       * libspi/accessible.c:
+       Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
+       hyperlinks, AtkHyperlink is an object type.     
+
+       * libspi/application.c:
+       Added various conversions to and from "generic" event types and
+       atk-specific types; this is really part of the 'bridge'
+       implementation but is valid for all AtkObject-based accessibility 
+       implementations.
+
+       * libspi/editabletext.c:
+       Fixed nasty bug wherein editable text's finalize method was
+       unref'ing tha AtkObject reference that the text parent class was
+       about to unref _again_.  There was also a nasty inheritance bug
+       that meant that the AccessibleEditableText class was corrupt.
+
+       * libspi/selection.c:
+       Provided implementations for some selection API that was broken.
+       
+       * idl/Application.idl:
+       Added registerObjectEventListener () method.
+
+       * THROUGHOUT:
+       Fixed a number of return values that were Bonobo_Unknowns from
+       bonobo_object_corba_objref(), which I
+       forgot to dup before returning.  Changed instances of 
+       bonobo_object_corba_objref (bonobo_object(o)) to
+       BONOBO_OBJREF(o), for concision and clarity.
+       
+<2001-10-13  Louise Miller <louise.miller@sun.com>
+
+       * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
+       idl/Event.idl, idl/Registry.idl
+       Changed these files to include Bonobo_Unknown.idl instead
+       of Bonobo.idl
+
+<2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
+
+       * libspi/component.c libspi/component.h:
+               Fixed typo.  Added assertions for object checks in 
+       AccessibleComponent code.
+
+<2001-10-09  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Accessible.idl:
+               Added 'isEqual (Accessible *object)' 
+       method for Accessible. (Not Yet Implemented).
+       
+       * idl/Registry.idl:
+               Changed signature of registerKeystrokeListener() to
+       take a KeySet and KeyEventSeq so that specific keys and event
+       types could be requested for monitoring, and added a flag
+       is_synchronous so that either synchronous or asynchronous
+       notification could be requested.  (However this is not all
+       implemented yet). This also meant adding two new typedefs,
+       KeyEventSeq and KeySet.
+
+       * idl/Relation.idl: 
+               Added two new relations, RELATION_TOOLTIP_FOR and
+       RELATION_LEAFNODE_OF.
+
+       * idl/State.idl:
+               Added new state, STATE_HAS_TOOLTIP.
+       
+       * libspi/text.c, editabletext.c:
+               Added new assertions to all casts of bonobo-objects from
+       CORBA servants, to prevent Text API calls on non-text objects.
+               Changed suspect casts of int-pointer types, so that we
+       always send a valid CORBA_long pointer to the CORBA APIs that use
+       in/out long parameters.  We then have to copy from the CORBA_long
+       into the regular long or int for return to the C bindings, or
+       vice-versa when returning parameters from ATK calls to the bonobo wrappers.
+       
+       * cspi/spi_text.c:
+       * libspi/deviceeventcontroller.c:
+               Cleaned these sources up.
+       * idl/Text.idl:
+               Changed return type for getCharacterAtOffset to
+       CORBA_unsigned_long, to allow for 32-bit characters.
+       
+               
+<2001-10-08  Bill Haneman <bill.haneman@sun.com>
+
+       * util/Makefile.am:
+       * idl/Makefile.am:
+               Fixed 'make dist' so that distro compiles...
+       * libspi/keymasks.h:
+               new file.
+       * cspi/spi-listener.c:
+               KeystrokeListenerCB now returns a boolean.
+       * cspi/spi.h:
+               Added KeyEventType struct, and KeyStroke.
+               Also added createKeystrokeListener(),
+       KeystrokeListener_addCallback(),
+       KeystrokeListener_removeCallback(), and added a keymask to
+       registerKeystrokeListener().
+       * cspi/spi_accessible.c:
+               Changed numerous return types for interfaces from
+       AccessibleComponent to Accessible<InterfaceName>; this was
+       probably a cut-and-paste error.
+       * cspi/spi_event.c:
+               Implementations of new KeystrokeListener api (from spi.h,
+       above).
+       * idl/Registry.idl:
+               Changes to key modifier mapping.
+               Created ControllerEventMask struct.
+               Made DeviceEventController derive from Bonobo::Unknown.
+       * idl/Text.idl:
+               Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
+       * libspi/deviceeventcontroller.c:
+               Added a number of new internal (private) methods.
+       * libspi/editabletext.c:
+       * libspi/editabletext.h:
+               Fixed a number of bugs related to the fact that
+       editabletext inherits from text.  Fixed the EditableText struct,
+       the init() call, and use correct casts when calling Text methods
+       from an EditableText object.  Removed (duplicate) atko from the
+       EditableText structure, we use the one in the parent Text
+       structure via the casts mentioned above.
+       * libspi/keystrokelistener.[ch]:
+       * libspi/registry.c:
+               Changes in support of keyboard handling (above).
+       
+       Keyboard handling, though partly functional, is still not
+       recommended for at-spi client use as there is considerable 
+       work yet to be done.
+
+       * libspi/text.c:
+               Changed some places where pointers to various int types
+       are cast to be pointers to CORBA_long types and vice-versa:
+       pointer casting is not safe so we pass pointers of the correct
+       types and then cast the result before putting it into the target
+       pointers.
+
+       * libspi/text.h: minor typos corrected.
+       * test/simple-at.c: 
+               We now speak not only the name of a Text element, but the
+       first sentence of its content, when it receives focus.
+               I also changed the text compression to 75% from 50%.
+       * util/Accessibility_Util.server.in:
+               Changed the default magnifier type to be a 3x vertical
+       splitscreen magnifier (was previously a 2x horizontal one).
+
+<2001-10-03  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/keystrokelistener.h:
+       * libspi/keystrokelistener.c:
+               Initial functional implementations of KeystrokeListener.
+       * idl/Registry.idl:
+       
+<2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
+
+       Fixed string handling for NULL strings in libspi.
+       Added spi_freeString to free strings returned by C bindings.
+
+<2001-09-30  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/keystrokelistener.h:
+       * libspi/keystrokelistener.c:
+               Began (no-op) implementations of KeystrokeListener
+                       (see below).
+       * libspi/deviceeventcontroller.c:
+       * libspi/deviceeventcontroller.h:
+               Began creating implementations of DeviceEventController,
+                       to handle keystroke and mouse event listening and
+                       synthesis.
+       * libspi/accessible.c:
+               Stubbed-in the implementations for
+                       Accessibility_Accessible_getState and
+                       Accessibility_Accessible_getRelationSet.
+       * libspi/registry.c:
+               Improved de-registration process and fixed some bugs, 
+                       deregistration now works correctly.
+       * libspi/desktop.c:
+               Added initialization of applications list (to NULL).
+       * util/magnifier.c:
+               Reduced speech compression from 0.5 to 0.7, for demo.
+               Changed call to gdk_window_set_decorations()
+                       to gtk_window_set_decorated().
+       * at-bridge/bridge.c:
+               Bridge now deregisters when app exits, via
+                       registration of a cleanup function
+                       with the g_atexit() call.
+                       Required making 'app' static, renamed 'this_app'.
+               Fixed broken use of bonobo_init, passing argv wrongly.
+
+<2001-09-27  Bill Haneman <bill.haneman@sun.com>
+
+       * util:
+       * util/Makefile.am: 
+               Created a new directory for 
+                       accessibility-related utilities, primarily for
+                       testing and demo purposes, but with possible
+                       end-user utility.
+       
+       * util/magnifier.c:
+       * util/magnifier.h:
+       * util/mag_image.c:
+       * util/mag_image.h:
+               Onscreen magnifier utility that
+                       is implemented as a bonobo service.
+       
+       * util/mag_client.c:
+       * util/mag_client.h:
+               Client-side support (simple C bindings) 
+                       for Magnification service
+       
+       * util/mag_control.c:
+               Client program example for 
+                       Magnification service
+       
+       * util/Accessibility_Magnifier.server.in:
+               Bonobo-activation file for the 
+                       Magnification service.
+       
+       * util/idl:
+       * util/idl/Magnifier.idl:
+               IDL defining the bonobo Magnification
+                       service interface.
+
+       * test/simple-at.c:
+               Modifications to use the bonobo-activated magnifier
+                       above, in place of trying to connect to an existing
+                       magnifier that uses socket-listening IPC.
+
+               If env variable MAGNIFIER is set, a magnifier service
+                       will be started if one does not exist.
+       
+<2001-09-25  Bill Haneman <bill.haneman@sun.com>
+       * at-bridge/bridge.c:
+               applied patch from Marc to build and run 
+               against new glib and gtk+ (seemed like a change 
+               to bonobo_init signature was made ?)
+       * test/simple-at.c:
+               made festival-server support turned off by default.
+               Added support for a simple magnifier (off by default)
+               which will be added to a 'util' directory later.
+       * at-bridge/Makefile.am:
+               Changed "application.h" header from a 'source'
+               to a 'dependency' of libat-bridge.
+
+<2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
+       * cspi/Makefile.am:
+               Added spi-util.c.
+
+       * cspi/spi-util.c:
+               Fixed typo
+
+       * cspi/spi.c:
+               Added interface implementation c files to list of
+                       includes so they are included in libcspi.
+
+       * cspi/spi.h:
+               Changed prototype of AccessibleAction_doAction to return a
+                       boolean.
+               Changed prototype of AccessibleTable_getCaption to
+                       return an Accessible.
+               Changed prototype of AccessibleTable_getSelectedRows
+                       and AccessibleTable_getSelectedColumns to
+                       return a long (returns the number of selected rows
+                       or columns respectively).
+               Changed name of AccessibleText_refRunAttributes to
+                       AccessibleText_getAttributes.
+               Changed prototype of AccessibleText_getCharacterExtents to
+                       return a void rather than a boolean. 
+               Added support for a AccessibleCoordType parameter
+                       specifying what type of coordinates are desired.
+               Added an AccessibleCordType parameter to
+                       AccessibleText_getPointAtOffset.
+
+       * cspi/spi_accessible.c:
+               Added code to return the outstanding interfaces from
+                       Accessible_queryInterface.
+
+       * cspi/spi_action.c:
+               Fixed typos.
+               Corrected call to getNActions to call the c binding
+                       for an attribute.
+
+       * cspi/spi_editabletext.c:
+               Fixed typos.
+               Changed name from setRunAttributes to setAttributes.
+
+       * cspi/spi_hyperlink.c:
+               Fixed typos.
+               Changed call to getNAnchors to correctly call the c
+                       binding for an attribute.
+
+       * cspi/spi_hypertext.c:
+               Fixed typos.
+               Changed getImageDescription to correctly call the
+                       binding for an attribute.
+
+       * cspi/spi_selection.c:
+               Changed getNSelectedChildren to correctly call the c
+                       binding for the attribute.
+               Changed refSelectedChild to getSelectedChild.
+
+       * cspi/spi_table.c:
+               Fixed typos.
+               Changed getCaption to return an Accessible.
+               Fixed calls which retrieve attributes.
+               Changed refAt to getAccessibleAt.
+               Changed getNSelectedRows and getNSelectedColumns to
+                       return longs.
+
+       * cspi/spi_text.c:
+               Changed getCharacterExtents and getPointAtOffset to accept an
+                       AccessibleCoordType.
+               Fixed typos.
+               Changed calls which retrieve attributes.
+               Changed refRunAttributes to getAttributes.
+
+       * cspi/spi_value.c:
+               Fixed typos.
+
+       * idl/Hyperlink.idl:
+               Changed n_anchors attribute to nAnchors to keep naming
+                       convention consistent.
+
+       * idl/Table.idl:
+               Made Table inherit from Bonobo::Unknown.
+               Added nSelectedColumns and nSelectedRows attributes.
+
+       * idl/Value.idl:
+               Made Value inherit from Bonobo::Unknown.
+
+       * libspi/hyperlink.c:
+               Change for nAnchors attributte name change.
+
+<2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
+       * cspi/Makefile.am:
+               Added spi-util.c.
+
+       * cspi/spi-util.c:
+               Fixed typo
+
+       * cspi/spi.c:
+               Added interface implementation c files to list of
+                       includes so they are included in libcspi.
+
+       * cspi/spi.h:
+               Changed prototype of AccessibleAction_doAction to return a
+                       boolean.
+               Changed prototype of AccessibleTable_getCaption to
+                       return an Accessible.
+               Changed prototype of AccessibleTable_getSelectedRows
+                       and AccessibleTable_getSelectedColumns to
+                       return a long (returns the number of selected rows
+                       or columns respectively).
+               Changed name of AccessibleText_refRunAttributes to
+                       AccessibleText_getAttributes.
+               Changed prototype of AccessibleText_getCharacterExtents to
+                       return a void rather than a boolean. 
+               Added support for a AccessibleCoordType parameter
+                       specifying what type of coordinates are desired.
+               Added an AccessibleCordType parameter to
+                       AccessibleText_getPointAtOffset.
+
+       * cspi/spi_accessible.c:
+               Added code to return the outstanding interfaces from
+                       Accessible_queryInterface.
+
+       * cspi/spi_action.c:
+               Fixed typos.
+               Corrected call to getNActions to call the c binding
+                       for an attribute.
+
+       * cspi/spi_editabletext.c:
+               Fixed typos.
+               Changed name from setRunAttributes to setAttributes.
+
+       * cspi/spi_hyperlink.c:
+               Fixed typos.
+               Changed call to getNAnchors to correctly call the c
+                       binding for an attribute.
+
+       * cspi/spi_hypertext.c:
+               Fixed typos.
+               Changed getImageDescription to correctly call the
+                       binding for an attribute.
+
+       * cspi/spi_selection.c:
+               Changed getNSelectedChildren to correctly call the c
+                       binding for the attribute.
+               Changed refSelectedChild to getSelectedChild.
+
+       * cspi/spi_table.c:
+               Fixed typos.
+               Changed getCaption to return an Accessible.
+               Fixed calls which retrieve attributes.
+               Changed refAt to getAccessibleAt.
+               Changed getNSelectedRows and getNSelectedColumns to
+                       return longs.
+
+       * cspi/spi_text.c:
+               Changed getCharacterExtents and getPointAtOffset to accept an
+                       AccessibleCoordType.
+               Fixed typos.
+               Changed calls which retrieve attributes.
+               Changed refRunAttributes to getAttributes.
+
+       * cspi/spi_value.c:
+               Fixed typos.
+
+       * idl/Hyperlink.idl:
+               Changed n_anchors attribute to nAnchors to keep naming
+                       convention consistent.
+
+       * idl/Table.idl:
+               Made Table inherit from Bonobo::Unknown.
+               Added nSelectedColumns and nSelectedRows attributes.
+
+       * idl/Value.idl:
+               Made Value inherit from Bonobo::Unknown.
+
+       * libspi/hyperlink.c:
+               Change for nAnchors attributte name change.
+
+
+<2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
+
+       implementations-- made server implementations own AtkObject pointers
+       rather than their respective AtkInterrface pointers to fix
+       refcounting.  AtkHyperlink is still broken.
+
+<2001-09-04  Bill Haneman <bill.haneman@sun.com>
+       * cspi/spi_accessible.c:
+               Added method Accessible_Role_getName(),
+                       and requisite string array (role_names).
+               Added conversion string_from_corba_strin() call
+                       to Accessible_getName and _getDescription.
+       * libspi/accessible.c:
+               Added implementation for Accessible_getRole()
+       * test/simple-at.c:
+               Added festival support, used if environment variable
+                       FESTIVAL is set.
+       
+2001-09-04  Bill Haneman <bill.haneman@sun.com>
+
+       * at-bridge/bridge.c:
+           Now allocate Accessibility_Event using
+           Accessibility_Event__alloc() instead of g_new0().
+       * libspi/accessibleeventlistener.c:
+           Initialize AccessibleEventListener->callbacks to NULL.
+           Fixed accessible__event_listener_init() param, changed to
+           "AccessibleEventListener *" type.
+           Changed a bonobo_object_release_unref() call to
+           Accessibility_Accessible_unref().
+       * libspi/listener.c:
+           Changed Bonobo_Unknown_unref to (equivalent) 
+           Accessibility_Accessible_unref.
+       * libspi/registry.c:
+           Changed bonobo_object_release_unref to 
+           Accessibility_Accessible_unref.
+       
+<2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
+       
+       * Added files:
+           spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
+           spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
+           spi-util.c spi-util.h
+           Implementations for C bindings to remaining accessibility 
+           interfaces.
+
+<2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
+       
+       * idl/Action.idl:
+           changed return value of Action from void to boolean to 
+           bring in line with ATK.
+
+       * idl/Text.idl:
+           Changed getText funcions to return "out" start and end offsets.
+           Changed getAttributes to take and offset and return the start 
+           and end offset of the attribute run.
+           Changed getOffsetAtPoint and getCharacterExtents to take an 
+            enum describing whether coordinates are window or screen.
+
+       * Added files:
+           libspi/action.c libspi/action.h libspi/editabletext.c 
+           libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
+           libspi/hypertext.c libspi/hypertext.h libspi/image.c 
+           libspi/image.h libspi/selection.c libspi/selection.h
+           libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
+           libspi/value.c libspi/value.h
+           Added server implementations for outstanding ATK interfaces 
+           not yet implemented.
+2001-09-04  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Action.idl:
+               Added (missing) getName() method. 
+               Made nActions an attribute.
+       * idl/EditableText.idl:
+               Changed order of params in setAttributes.
+       * idl/Hyperlink.idl:
+               Removed getAnchor, added getURI.
+       * idl/Image.idl:
+               Changed attributes to methods, for efficiency
+               (so that getting extents can be done in one call)
+       * idl/Selection.idl:
+               Changed nSelectedChildren to attribute, and re-indented.
+       * idl/Table.idl: changed nrows, ncolumns, caption, summary 
+               to attributes.
+       * idl/Text.idl: reformatted to match our coding style.
+               (temporarily?) removed getRowColumnAtOffset().
+               Changed text selection API to support multi-select and
+               non-contiguous selections, as in ATK.
+       * idl/Value.idl: changed some methods to attributes.
+
+2001-08-24  Mark McLoughlin <mark@skynet.ie>
+
+       * libspi/listener.c(impl_notify_event):
+       BonoboUnkown_unref the source instead
+       of bonobo_object_release_unref - the ORB
+       handles the releasing.
+
+       * configure.in: require ORBit-2.3.94 for
+       this behaviour.
+
+2001-08-21  Bill Haneman <bill.haneman@sun.com>
+
+        Tagged CVS repository 'EA_1_0'.
+        * README.EARLY_ACCESS:
+        Alphabetized acknowledgements list, and
+        added someone.
+        Listed some known dependencies of at-spi.
+
+2001-08-20  Bill Haneman <bill.haneman@sun.com>
+
+       * docs/at-spi-docs.sgml:
+       * docs/at-spi-sections.txt:
+       * docs/at-spi-overrides.txt: (Added zero-length file)
+       Documentation improvements - gtk-doc should build
+       docs for all implemented C bindings now.
+       * cspi/Makefile.am:
+       * cspi/spi_main.c:
+       * cspi/spi.c: (New file)
+       * cspi/spi_event.c: (New file)
+       * cspi/spi_registry.c: (New file)
+       * cspi/spi_accessible.c: (New file)
+       * cspi/spi_application.c: (New file)
+       * cspi/spi_component.c: (New file)
+       Split spi_main.c into six parts, and included them from
+       "spi.c".  This is a bit of a hack, probably temporary,
+       but required by gtk-doc, apparently.
+       
+2001-08-20  Bill Haneman <bill.haneman@sun.com>
+
+       * docs/Makefile.am:
+       * docs/at-spi-docs.sgml:
+       * docs/at-spi-sections.txt:
+       * configure.in:
+       Initial checkins/modifications for gtk-doc generation.
+       * cspi/spi.h:
+       * cspi/spi.c:
+       Added (missing) interface query methods to Accessible's C binding.
+       * cspi/spi-impl.h:
+       Added GenericInterface type definition.
+       * test/simple-at.c:
+       Added query for AccessibleComponent interface to focus event handler.
+       Added printout of bounding box for focussed component.
+       * libspi/component.c:
+       Added partial implementation for AccessibleComponent to C binding.
+       * idl/Application.idl:
+       * libspi/registry.c:
+       * libspi/listener.c:
+       * libspi/application.c:
+       * libspi/application.h:
+       Changed "ID" attribute type from string to long.
+
+2001-08-19  Bill Haneman <bill.haneman@sun.com>
+
+       * cspi/spi.h:
+       * cspi/spi.c:
+       Made method naming consistent: methods taking object args
+       start with uppercase, other methods (except those using
+       acronyms) start with lowercase.  Underscores delimit between
+       object names and method names:
+       SPI_init() - uppercase since it starts with an acronym.
+       getDesktopCount () - lowercase start since no object param0.
+       Accessible_getName() - uppercase object type name, studlyCaps method
+                              name.
+
+       *cspi/spi.h:
+       Added gtk-doc documentation for all currently implemented
+       methods in the C bindings API.
+
+2001-08-18  Bill Haneman <bill.haneman@sun.com>
+
+       * Makefile.am : changed build order to build test last.
+       * cspi/spi.h :
+       * cspi/spi_main.c :
+       Changed "createEventListener" to "CreateEventListener".
+       * libspi/accessibleeventlistener.c :
+       Bugfix for addition of callbacks.
+       * test/Makefile.am :
+       * test/simple-at.c :
+       Added new test that uses the C bindings API.
+       * idl/Event.idl :
+       * libspi/listener.c :
+       * libspi/registry.c :
+       * libspi/accessibleeventlistener.c :
+       * at-bridge/bridge.c :
+       Renamed member "target" of Accessibility_Event to "source",
+       which is more descriptive.
+       
+
+2001-08-18  Bill Haneman <bill.haneman@sun.com>
+
+       * Makefile.am: 
+       * configure.in :
+       * cspi/Makefile.am :
+       Added makefile support for at-spi/cspi directory.
+       * cspi/spi.h : 
+       * cspi/spi-impl.h :
+       * cspi/spi-listener.h : (NEW FILE)
+       Added support for/use of spi-listener.h.
+       * cspi/spi_main.c :
+       C bindings now build successfully, with no warnings.
+       * libspi/accessibleeventlistener.h : (NEW FILE)
+       * libspi/accessibleeventlistener.c : (NEW FILE)
+       * libspi/Makefile.am :
+       Added new object type "AccessibleEventListener"
+       which inherits from Listener, and allows attachment
+       of in-process callbacks (so that a client with a listening
+       object instance can add functionality to the local 
+       implementation, dynamically).
+
+2001-08-18  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/accessible.c: 
+       Add implementation for get_index_in_parent().
+       * cspi/spi.h : 
+       Added #include of "spi-roletypes.h", and
+       added enumerated type AccessibleCoordType.
+       Added definition for KeystrokeListener (function type).
+
+       ADDED FILES:
+       * cspi/spi-statetypes.h :
+       * cspi/spi-roletypes.h :
+       * cspi/spi-impl.h :
+       Added these headers, used by spi.h.
+       * cspi/spi_main.c : 
+       Added code (NOTE: not yet built by make).
+
+2001-08-18  Mark McLoughlin <mark@skynet.ie>
+
+       * libspi/Makefile.am: generate imodule
+       at the same time as other idl compiler 
+       generated files. 
+
+2001-08-17  Bill Haneman <bill.haneman@sun.com>
+       * libspi/registry.c :
+       * libspi/application.c :
+       * idl/Application.idl :
+       Made registration with toolkit an application method,
+       which is required since each app has its own toolkit static
+       environment.  Thus the bridge must register for 
+       notification of toolkit events from each application in turn.
+       Toolkit notifications are now successfully registered for, and
+       sent to the listening at client.
+       * test/at.c :
+       Changed toolkit event string to use hyphens rather than underscores.
+       * libspi/listener.c :
+       listner now gives more info in debug mode - it reports the
+       name of the event received, as well as the name of the source.
+       
+
+2001-08-16  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/registry.c :
+       added more implementation for toolkit events.
+       Fixed bug such that toolkit event registrations
+       (via atk) use the whole event name string, not 
+       just minor+detail.
+       Removed a useless call to an ORBit_ method.
+       * at-bridge/bridge.c :
+       Removed unused local sbuf[] variable.
+       * test/at.c :
+       We now register for Gtk:GtkWidget:button_press_event 
+       events as well as "focus:" events.
+       * cspi/spi.h :
+       Add some more API from Registry.idl that was missing,
+       for keystroke listening, keystroke and mouse event
+       synthesis, and enumeration of accessible desktops.
+
+2001-08-16  Michael Meeks  <michael@ximian.com>
+
+       * configure.in: use AM_GLIB_GNU_GETTEXT.
+
+       * Makefile.am (SUBDIRS): kill intl.
+
+2001-08-15  Michael Meeks  <michael@ximian.com>
+
+       * registryd/Makefile.am: s/oaf/server/ relocate info file.
+
+       * configure.in: upd.
+
+       * configure.in: depend on a recent bonobo-activation that
+       will find our server files ...
+
+2001-08-16  Bill Haneman <bill.haneman@sun.com>
+
+       * libspi/accessible.c : accessible_new() :
+       Now we add the Component interface via bonobo_object_add_interface,
+       if the contained AtkObject implements AtkComponent.
+       * libspi/accessible.h : now include "component.h"
+       * libspi/component.h :
+       * libspi/component.c : added files - implementation of
+       bonobo wrapper object for Accessibility/Component
+       * libspi/listener.c :
+       Added test code to check for Accessibility/Component:1.0
+       interface and report whether it is implemented by the
+       event source.
+       * libspi/registry.c :
+       Now we check for not only the hash of the whole event 
+       string before relaying the event, we also check the
+       "minor" event string (without the detail string).
+       This allows event listeners to be registered against
+       all events of a certain major+minor type, or just
+       against a specific major+minor+detail type.
+       * libspi/accessible.c :
+       Added implementations for Accessible:get_parent(),
+       Accessible:getChildCount(), and Accessible:getChildAtIndex().
+       * libspi/registry.c :
+       * libspi/listener.c :
+       Replaced calls to Accessibility_Accessible_ref() and
+       Accessibility_Accessible_unref() with 
+       calls to bonobo_object_dup_ref() and 
+       bonobo_object_release_unref(), so that the CORBA object
+       is dup-ed and released when relayed, as well as the bonobo object.
+
+2001-08-15  Mark McLoughlin <mark@skynet.ie>
+
+       * libspi/Makefile.am,
+          registryd/Makefile.am,
+          at-bridge/Makefile.am.
+          test/Makefile.am, configure.in:
+       reverse previous changes.
+
+       * /idl/Image.idl: fix typo.
+
+       * test/Makefile.am: put DEBUG_FLAGS
+       in CFLAGS.
+
+2001-08-15  Mark McLoughlin <mark@skynet.ie>
+
+       * test/app.c: use argv[0] instead of
+       g_type_prgname.
+
+2001-08-15  Mark McLoughlin <mark@skynet.ie>
+
+       * libspi/Makefile.am,
+         registryd/Makefile.am,
+         at-bridge/Makefile.am.
+         test/Makefile.am, configure.in:
+       cleanup, replace individual LIBS/CFLAGS with
+       AT_COMMON_{LIBS|CFLAGS}.
+
+       * README: format.
+
+2001-08-15  Mark McLoughlin <mark@skynet.ie>
+       
+       * configure.in, libspi/Makefile.am:
+       Change IDL path checking for bonobo-activation
+       as opposed to oaf.
+
+2001-08-15  Bill Haneman <bill.haneman@sun.com>
+
+       * registryd/registry.c : separated event listeners to use
+       3 separate lists (focus, window, toolkit).  Began testing
+       event names against hashes before relaying events.
+       * test/at.c : now register for events of type "focus:"
+       * test/app.c : now generate events of type "focus:"
+       * at-bridge/bridge.c : register with ATK for focus events,
+       and we now relay those focus events to any "focus:" listeners.
+       This now works with the bridge as a GTK_MODULE when running test/at.
+       * libspi/registry.c :
+       * libspi/listener.c : 
+       now we ref event sources before propagating, and unref on receipt.
+       * libspi/registry.c : 
+       some changes to internal structs, to support event typestring hashes.
+       * text/app.c : changed the way the appname is generated.
+       * cspi : added directory that will hold the C bindings library for 
+               non-CORBA/bonobo-savvy clients.
+       * cspi/spi.h : header file that contains the function prototypes for the C binding.
+       * idl/Component.idl : added in parameter to indicate coord system for
+               geometry-related calls.
+       * idl/Hyperlink.idl : added readonly n_links attribute
+       * idl/Image.idl : changed methods to attributes.
+       
+2001-08-15  Mark McLoughlin <mark@skynet.ie>
+
+       * at-bridge/Makefile.am: link against
+       ../libspi/libspi.la instead of -lspi.
+
+       * at-spi/test/app.c: include 
+       bonobo-activation.h. Use a default appname
+       if one is not provided.
+
+2001-08-14  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Registry.idl : temporarily changed register_Application
+       to oneway, to work around issue with initial registration 
+       re-entrancy.
+       * idl/Application.idl : changed attribute "id" from readonly 
+       to read-write, since it needs to be assigned by Registry.
+       * registryd/registryd.c : added call to set application id 
+       on registration.
+       * registryd/registry.c : changed de-registration procedure to
+       use CORBA_Object_hash() to find matching object ref in application
+       lists and listener lists.
+       * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
+       began distinguishing between event types (work in progress).
+
+2001-08-13  Bill Haneman <bill.haneman@sun.com>
+
+       CHANGES:
+       * libspi/application.c:
+       Added implementations for get/set id, get_toolkitName,
+       get_version.
+       * registryd/registryd.c :
+       * test/at.c :
+       * test/app.c :
+       * Makefile.am :
+       Converted from use of OAF to bonobo-activation.
+       * libspi/desktop.h :
+       * libspi/desktop.c :
+       * test/app.c :
+       Removed references to atksimpleobject, since base atkobject
+       implementation now provides functionality we need.
+       * libspi/atksimpleobject.c :
+       * libspi/atksimpleobject.h :
+       Removed.
+       
+       ADDITIONS:
+       * at-bridge
+       * at-bridge/Makefile.am
+       * at-bridge/bridge.c
+       * configure.in
+       * Makefile.am
+       Added directory "bridge" and contents, and added dependencies
+       in Makefile.am/configure.in.  
+       Initial checkin of "at-bridge".
+       This code is a GTK_MODULE which automatically registers
+       GTK+ apps with the accessibility registry, using an object
+       reference to the root ATK object.
+       
+2001-08-10  Mark McLoughlin <mark@skynet.ie>
+
+       * po/Makefile.in.in: Remove. Again. If this
+       doesn't get autogenerated - you need to update
+       gnome-common.
+
+2001-08-07  Mark McLoughlin <mark@skynet.ie>
+
+       * po/Makefile.in.in: Add. Again.
+
+2001-07-31  Bill Haneman <bill.haneman@sun.com>
+
+        * libspi/accessible.c : added support for 'description' property.
+       * libspi/accessible.c
+       * libspi/desktop.c
+       * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
+           (since the two are now equivalent in libbonobo)
+       * idl/Action.idl
+       * idl/Component.idl
+       * idl/Hyperlink.idl
+       * idl/Image.idl
+       * idl/Selection.idl
+       * idl/Table.idl
+       * idl/Text.idl
+       * idl/Value.idl : changed these 'secondary' interfaces to inherit from
+            Bonobo::Unknown as does Accessibility::Accessible.
+       * idl/StreamableContent.idl : as above, and replaced internal InputStream
+            interface with Bonobo::Stream, since it was redundant with it.
+            (The Stream returned by a StreamableContext object is expected to
+            implement only a subset of Bonobo::Stream)
+
+2001-07-28  Anders Carlsson  <andersca@gnome.org>
+
+        * libspi/accessible.c (accessible_object_finalize): Change
+          g_free to g_object_unref since the AtkObject is a GObject.
+
+2001-07-30  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Accessibility.idl: add new IDL files
+       
+       Added:
+       * idl/Action.idl: Definitions of actionable UI object
+       * idl/Component.idl: Definitions of UI component geometry, etc.
+       * idl/Hyperlink.idl: Defs of hyperlink behavior
+       * idl/Image.idl: Def of accessible image
+       * idl/Selection.idl: Definition of UI object with selectable children
+       * idl/StreamableContent.idl: Definition of UI object with streamable backing data
+       * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
+       * idl/Text.idl: Interface defs for UI elements with complex textual content
+       * idl/Value.idl: Definition of UI element that is a value controller or display
+       
+2001-07-27  Michael Meeks  <michael@ximian.com>
+
+       * po/Makefile.in.in: remove autogenerated file from CVS.
+
+       * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
+       type library.
+
+       * idl/Registry.idl: include guard.
+
+       * idl/Accessibility.idl: Add, and include all the other IDL
+       files.
+
+       * idl/*.idl: remove mass of pragmas etc.
+
+2001-07-26  Michael Meeks  <michael@ximian.com>
+
+       * registryd/Makefile.am (registryd_SOURCES): remove
+       redundant at_.
+
+2001-07-27  Mark McLoughlin <mark@skynet.ie>
+
+       * libspi/.cvsignore, registryd/.cvsignore,
+         test/.cvsignore: updated.
+
+       * po/Makefile.in.in: gettext update.
+
 2001-07-25  Bill Haneman <bill.haneman@sun.com>
 
        * initial CVS checkin