+
+2001-12-10 Bill Haneman <bill.haneman@sun.com>
+
+ * test/test-simple.c:
+ Added test_table (GtkTreeView widget in test window to follow).
+ Un-commented test_value, added GtkRange widget.
+ Added GtkTreeView widget with GtkListStore. It passes regression
+ test but leaks one SPI object for some reason.
+
+ * libspi/value.c:
+ Fixed bug in impl__set_currentValue.
+
+2001-12-10 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_text.c: audit for exception handling,
+ tolerating NULL object references safely etc.
+
+ * cspi/spi_value.c: ditto.
+
+ * cspi/spi_table.c (AccessibleTable_getSummary),
+ (AccessibleTable_getAccessibleAt),
+ (AccessibleTable_getRowHeader),
+ (AccessibleTable_getColumnHeader),
+ (AccessibleTable_getCaption): fix bugs hidden by
+ incorrect casts.
+ (long_seq_to_array): impl.
+ (AccessibleTable_getSelectedRows),
+ (AccessibleTable_getSelectedColumns): use it.
+
+2001-12-10 Bill Haneman <bill.haneman@sun.com>
+
+ * TODO:
+ Added a TODO list (rough and short for now).
+
+ * cspi/spi_hyperlink.c:
+ * cspi/spi_hypertext.c:
+ Fixed macro name typos, and remove use of obsolete macro in
+ AccessibleHyperlink_getLink.
+
+ * cspi/spi_action.c:
+ * cspi/spi_accessible.c:
+ * cspi/spi_application.c:
+ * cspi/spi_component.c:
+ * cspi/spi_selection.c:
+ * cspi/spi_text.c:
+ * cspi/spi_value.c:
+ Documentation fixes (removed return values from ref/unref methods).
+
+2001-12-10 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_action.c: audit for exception handling,
+ tolerating NULL object references safely etc.
+
+ * cspi/spi_accessible.c: ditto.
+
+ * cspi/spi_component.c: ditto.
+
+ * cspi/spi_editabletext.c: ditto.
+
+ * cspi/spi_hyperlink.c: ditto.
+
+ * cspi/spi_hypertext.c: ditto.
+
+ * cspi/spi_image.c: ditto.
+
+ * cspi/spi_selection.c: ditto.
+
+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: