+2002-03-15 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Role.idl:
+ Added ROLE_DRAWING_AREA which seemed to be missing from the
+ previous commit.
+
+2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * cspi/spi-roletypes.h cspi/spi_accessible.c
+ idl/Accessibility_Role.idl libspi/accessible.c: synched up role
+ types with ATK.
+
+ * registryd/desktop.c registryd/desktop.h registryd/registry.c:
+ Added signals to SpiDesktop and callbacks in SpiRegistry to notify
+ AT when applications are added and removed from the desktop. This
+ reverts the previous broken implementation using the backing
+ AtkObject for the SpiDesktop.
+
+ 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * registryd/desktop.c: emit the "children-changed::add" and
+ "children-changed::remove" signals on the backing ATK object for
+ the desktop so AT can tell when applications are started and shut
+ down.
+
+ 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
+
+ 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
+
+ * cspi/spi_accessible.c: Implemented c bindings for stateset support
+
+ * cspi/state-types.h: synched with IDL and ATK
+
+ 2002-03-13 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/accessible.c
+ (impl_accessibility_accessible_get_child_at_index):
+ Change return value for g_return_if_fail ()
+ to CORBA_OBJECT_NIL instead of "0" (!)
+
+ * registryd/Makefile.am:
+ * registryd/Accessibility_Register.server.in:
+ Changed name of executable, "registryd",
+ to something more informative:
+ "at-spi-registryd".
+
+2002-03-13 Michael Meeks <michael@ximian.com>
+
+ * atk-bridge/bridge.c (atk_bridge_init): don't register
+ if we're in a bonobo-component, rather than a bonobo app.
+
+2002-03-13 Michael Meeks <michael@ximian.com>
+
+ * atk-bridge/bridge.c (gtk_module_init): split
+ out body to (atk_bridge_init): here, since otherwise
+ we get symbol conflicts and oddness when invoked
+ from (gnome_accessibility_module_init): here (upd.)
+
+2002-03-11 Bill Haneman <bill.haneman@sun.com>
+
+ * HACKING:
+ New file. Explicitly allow "build sheriff" putbacks provided
+ they are tested on Solaris.
+
+ * docs/reference/cspi/Makefile.am:
+ Added '-' to the "cp" command for index.sgml.
+ ("patch by thomasvs, soon coming to a GUADEC near you")
+
+ * configure.in:
+ Incremented version number (0.9.0) for new release.
+ Changed macro that checks for popt, to better detect
+ obsolete versions of popt.
+
+ * configure.in:
+ Added X_LIBS to AC_SUBST, for applications
+ that call Xlib API directly.
+
+
+2002-03-07 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
+
+ * util/Makefile.am:
+ Fix regression caused by hard-coding major
+ version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
+ (see above change).
+
+ * test/test-simple.c (test_editable_text),
+ (test_test): revert previous change (error was
+ a regression in gail which is now fixed).
+
+2002-03-04 Michael Meeks <michael@ximian.com>
+
+ * test/test-simple.c (test_editable_text),
+ (test_text): pass G_MAXINT instead of '-1' for
+ whole string - is this a good thing !?
+
+ * cspi/spi_accessible.c
+ (Accessible_getRelationSet): fix crasher bug
+ overwriting the end of the array.
+
+ * test/test-simple.c (validate_accessible): free,
+ not g_free returned relation set.
+
+2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
+ implemented stateset support
+
+ * idl/Accessibility_State.idl: Made necessary changes to
+ the IDL to support state sets.
+
+2002-02-12 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ Added implementation for generateMouseEvent.
+
+ * cspi/spi_registry.c:
+ Connected new implementation for generateMouseEvent
+ to the C bindings.
+
+2002-02-12 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in: 0.8
+ Incremented revision (but no change in public API
+ outside of 'utils', which are not installed public yet.)
+
+ * libspi/component.c:
+ Changed to use atk_component API for layers and
+ mdi_zorder, instead of deprecated atk_object API.
+
+ Magnification Utility Enhancements:
+
+ * util/magnifier.c:
+ Added implementation of createZoomRegion, clearAllZoomRegions,
+ resizeZoomRegion. Added new commandline argument
+ "--no-initial-region". Note that clearAllZoomRegions doesn't
+ unmap the old '0' region as it should (yet), and the other
+ methods only work when creating/resizing a single region,
+ which is "region 0".
+ (Code for multiple region support will be added later.)
+
+ * util/mag_image.c:
+ Now we raise the magnifier window each time it's refreshed;
+ this will help keep it on top.
+
+ * util/mag_client.h:
+ Added simple wrappers for above, used by mag_control.
+ For general use, it's recommended to use the bonobo magnifier
+ control API directly instead of using these wrappers.
+
+ * util/mag_image.h:
+ Moved ZoomRegionData from magnifier.c to this file.
+
+ * util/mag_control.c:
+ Added some code to exercise new IDL implementations.
+
+2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * libspi/text.c: Provide implementation for getAttributes.
+
+2002-02-04 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Incremented revision.
+
+ * test/test-simple.c:
+ Replaced use of deprecated g_main_iteration with
+ g_main_context_iteration.
+
+2002-01-28 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * configure.in:
+ Incremented revision for desktop alpha 2.
+
+2002-01-28 Mark McLoughlin <mark@skynet.ie>
+
+ * libspi/remoteobject.[ch]: make RemoteObject and interface rather
+ than an atk object.
+
+ * test/simple-at.c: include netinet/in.h.
+
+2002-01-24 Mark McLoughlin <mark@skynet.ie>
+
+ * cspi/spi_accessible.c: (Accessible_getRelationSet):
+ use NULL, not CORBA_OBJECT_NIL.
+
+ * libspi/accessible.c:
+ (impl_accessibility_accessible_get_relation_set):
+ allocate the sequence correctly.
+
+ * libspi/remoteobject.h: kill spi_remote_object_new.
+
+ * test/test-simple.c: (validate_accessible): add code
+ to test relation sets, now all we need is to figure
+ out how to excercise this code path :/
+
+2002-01-18 Michael Meeks <michael@ximian.com>
+
+ * test/test-simple.c
+ (key_listener_cb): consume the key.
+ (test_keylisteners): update.
+ (main): wait for any pending unrefs on events.
+
+ * registryd/deviceeventcontroller.c
+ (spi_controller_update_key_grabs): only re-issue the
+ grab on a key release.
+ (spi_device_event_controller_forward_key_event):
+ refresh the keygrabs before we notify the listeners,
+ to reduce the X ungrab / re-grab race.
+ (spi_controller_register_with_devices): remove
+ XSelectInput - we do that with the gdk_window_ call.
+ (_spi_controller_device_error_handler): return a value.
+ s/GDK_DISPLAY/spi_get_display/
+
+2002-01-17 Michael Meeks <michael@ximian.com>
+
+ * registryd/deviceeventcontroller.c
+ (_deregister_keygrab): don't blow out the later
+ assertion.
+
+ * test/test-simple.c (test_keylisteners): do a
+ more intelligent validation.
+
+2002-01-14 Michael Meeks <michael@ximian.com>
+
+ * atk-bridge/bridge.c
+ (gnome_accessibility_module_init),
+ (gnome_accessibility_module_shutdown): impl.
+ (gtk_module_init): protect vs. double inits.
+ (add_signal_listener): impl.
+ (spi_atk_bridge_state_event_listener): kill
+ (deregister_application): split out of
+ (spi_atk_bridge_exit_func): here.
+
+2002-01-18 Bill Haneman <bill.haneman@sun.com>
+
+ * test/simple-at.c:
+ Added caret tracking when using magnifier, and
+ now use text bounds for focus tracking of text elements, rather than
+ the component bounds - this is helpful for short text fields in long
+ table cells, at high magnification.
+
+2002-01-16 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ Regression fix for keylistener de-registration; global keygrabs
+ were not being released when deregisterKeystrokeListener was
+ called in cspi, since
+ Accessibility_DeviceEventController_deregisterKeystrokeListener
+ was called with a zero-length keyset. That is because the cspi
+ method, SPI_deregisterKeystrokeListener, does not take a keyset
+ parameter but instead should remove all the key grabs held be a
+ keystroke listener.
+ The code in impl_deregister_keystroke_listener was changed to copy
+ the keylist from the listener instance previously registered with
+ the DeviceEventController before releasing the grabs.
+
+ * registryd/registry.c:
+ * registryd/deviceeventcontroller.c:
+ * libspi/spi-private.h:
+ * libspi/util.c:
+ Changed spelling of "re-enterant" to "re-entrant" globally.
+
+2002-01-16 Bill Haneman <bill.haneman@sun.com>
+
+ * test/test-simple.c:
+ Changed key listeners test - the test was slightly mis-using the
+ (admittedly poorly documented) SPI_generateKeyboardEvent API.
+ It now uses '=' as the key event listened to and generated,
+ relying on a keysym match rather than assuming that keycode 33
+ is always equal to keysym '!'.
+
+2002-01-15 Bill Haneman <bill.haneman@sun.com>
+
+ * test/simple-at.c:
+ Changed simple-at to use a specific keyset, rather than
+ SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
+ manager, desktop, etc.
+
+2002-01-11 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ Replaced standard X error handler with a special handler that
+ is non-fatal for failed keygrabs. This works around
+ problems with keygrab clashes sometimes observed on
+ Solaris using CDE.
+ Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate
+ mouse handling code as yet).
+
+2002-01-11 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Incremented revision for desktop alpha release.
+
+ * README:
+ Fixed a couple of the more glaring errors (still not
+ very up-to-date).
+
+2002-01-11 Michael Meeks <michael@ximian.com>
+
+ * registryd/deviceeventcontroller.c
+ (spi_device_event_controller_forward_key_event): kill
+ XUngrabKey / XKeyGrab race.
+ (spi_controller_grab_keyboard): rename to
+ (spi_controller_update_key_grabs): this, and deal
+ with incremental adding / removing grabs more
+ sensibly.
+ (_register_keygrab): ensure we're not pending a remove.
+ (spi_grab_mask_free): impl.
+ (spi_controller_register_global_keygrabs): split out
+ common code into:
+ (handle_keygrab): impl.
+ (_deregister_keygrab): impl.
+ (spi_controller_deregister_global_keygrabs): impl.
+ (spi_controller_update_key_grabs): re-issue the grab if
+ we just recieved a notification.
+
+ * test/test-simple.c (key_listener_cb): remove debug.
+
+ * registryd/deviceeventcontroller.c
+ (spi_controller_register_device_listener): after
+ registering a global keygrab, actualy register it !
+ don't wait for a timeout; doh !
+
+ * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
+ to make it more readable / manipulable.
+ s/grabmask/grab_mask/ s/refcount/ref_count/
+ s/keyval/key_val/ s/modmask/mod_mask
+
+2002-01-08 Michael Meeks <michael@ximian.com>
+
+ * registryd/deviceeventcontroller.c
+ (spi_controller_register_with_devices): use gdk calls to
+ setup a filter.
+ (global_filter_fn): implement the filter.
+ (spi_device_event_controller_check_key_event): rename to
+ (spi_device_event_controller_forward_key_event): this & upd.
+ (spi_get_display): replace with GDK_DISPLAY.
+
+ * registryd/deviceeventcontroller.c
+ (spi_controller_deregister_device_listener): unroll into
+ (impl_deregister_keystroke_listener): here to simplify.
+ (spi_controller_register_global_keygrabs): split cut and
+ paste (!) out into (_register_keygrab): here, shorter & sweeter.
+ (spi_controller_deregister_device_listener): remove.
+ (impl_register_mouse_listener): remove, no mouse listener
+ support in at-spi-1.0
+
+ * registryd/registry.c
+ (_device_event_controller_hook): kill.
+ (spi_registry_init): upd.
+
+ * registryd/deviceeventcontroller.c
+ (spi_device_event_controller_class_init): upd.
+ (spi_check_key_event): merge into.
+ (spi_device_event_controller_check_key_event):
+ here and kill strange static ev init, don't leak
+ the x_event - nor dynamicaly allocate it.
+
+ * registryd/registry-main.c (main): re-direct
+ timeout to remove strange vtable mess.
+
+ * registryd/deviceeventcontroller.c
+ (remove_listener_cb): impl.
+ (spi_controller_deregister_device_listener):
+ fix re-enterancy hazard.
+
+2002-01-07 Michael Meeks <michael@ximian.com>
+
+ * registryd/deviceeventcontroller.c
+ (spi_device_event_controller_new): upd.
+ (impl_notify_listeners_sync): upd. debug.
+ (spi_notify_keylisteners): fix re-enterancy hazards,
+ prettify, remove O(n*n) iteration.
+ (spi_controller_grab_keyboard): fix iteration.
+ (spi_check_key_event): re-format to suit coding style.
+ Clean all the warnings - we're warning free.
+
+ * registryd/deviceeventcontroller.h:
+ * registryd/registry.h: make mutualy referential with
+ typesafe forward references instead of (!) void pointer
+ hacks.
+
+2002-01-11 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_accessible.c (role_names): add a role name
+ to sync this array with the enum; and make the regression
+ tests pass, sigh.
+
+2002-01-10 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_registry.c (SPI_generateKeyboardEvent):
+ allow expansion of enumeration & kill warning.
+
+ * test/test-simple.c (key_listener_cb): impl.
+ (test_keylisteners): impl.
+
+ * cspi/spi-listener.h: make listener signatures const
+ on the provided (const) events.
+
+ * test/keysynth-demo.c: upd. to const events.
+
+ * test/simple-at.c: ditto.
+
+2002-01-11 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Rev the version to 0.5 (the previous tarball was named 0.4,
+ even though the micro number was 3), so we need to rev upwards
+ again for beta2/"desktop-alpha"
+
+ * test/demo.csh:
+ Checked in a demo script, which requires editing before use!
+ Proceed with caution.
+
+ * libspi/value.h:
+ Fixed typo in header which was redefining SPI_ACTION_CLASS.
+
+ * cspi/spi_accessible.c:
+ Add a couple of missing enum initializations, and fix some enum
+ comments.
+
+ * cspi/spi_registry.c:
+ Add comment describing keystring parameter to SPI_generateKeyboardEvent.
+
+ * docs/reference/cspi/at-spi-cspi-sections.txt:
+ Remove/fix a couple of broken document references.
+
+ * test/simple-at.c:
+ Minor tweaks to the demo. We now (sigh) use Alt-SHIFTLOCK as well
+ as Alt-Control to listen for commands, since on some systems
+ Control-Alt may already be grabbed.
+
+2002-01-10 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Update version number to 0.4 for Beta2.
+
+ * libspi/accessible.c, libspi/accessible.h:
+ Expose spi_accessible_construct, to enable libgail-gnome
+ construction from spi_accessible subtype.
+
+ * utils/magnifier.c:
+ Workaround for bug in some non-gnome-compliant window managers
+ which made magnifier resize improperly.
+
+2002-01-09 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/accessible.c: (spi_accessible_new) :
+ Move the test for SPI_IS_REMOTE_OBJECT to
+ spi_accessible_new_return, fixing a bug and compile time warning.
+
+2002-01-08 Michael Meeks <michael@ximian.com>
+
+ * registryd/registry.c (parse_event_type): remove strndup.
+
+ * libspi/Makefile.am (libspi_la_SOURCES): remove
+ sources already included in the headers section.
+
+ * libspi/util.c: add.
+
+ * libspi/spi-private.h: add.
+
+ * registryd/registry.c: update to moved list iterators.
+
+2002-01-05 Michael Meeks <michael@ximian.com>
+
+ * test/simple-at.c (main): upd. auto-module set to atk-bridge
+
+ * test/test-simple.c (main): ditto.
+
+2002-01-04 Michael Meeks <michael@ximian.com>
+
+ * libspi/accessible.c (spi_accessible_new): remove 2nd,
+ redundant construct.
+
+ * registryd/registry.c
+ (get_listener_list): impl.
+ (impl_accessibility_registry_register_global_event_listener):
+ re-impl. to simplify using ~, remove dodgy const cast off.
+ (parse_event_type): constify.
+ (impl_accessibility_registry_deregister_global_event_listener_all):
+ re-write, more efficiency and simplicity, kill re-enterancy
+ hazard.
+ (compare_listener_corbaref, compare_corba_objects),
+ (compare_listener_quarks): define out.
+ (impl_accessibility_registry_deregister_global_event_listener):
+ re-write for effiency, and nail re-enterancy hazard.
+ (impl_accessibility_registry_get_desktop_list): impl.
+ (re_enterant_list_delete_link): impl.
+ (re_enterant_list_foreach): impl.
+ (remove_listener_cb): impl.
+ (_registry_notify_listeners): kill.
+ (notify_listeners_cb): impl.
+
+ * cspi/spi_registry.c (SPI_freeDesktopList): impl.
+ (SPI_getDesktopList): impl.
+
+ * test/test-simple.c (test_desktop): test the methods.
+
+2002-01-03 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
+ keystrings since we free them
+ (SPI_freeAccessibleKeySet): in here.
+
+ * libspi/accessible.c (spi_accessible_new): kill warning,
+ wonder what is going on with the constructor here.
+
+2002-03-01 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/accessible.c (spi_accessible_new ()) :
+ Added check to see if AtkObject is an SpiRemoteObject before
+ creating an SpiAccessible.
+
+2002-05-01 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
+ Enable keygrabs using the Control modifier, now that they are
+ working properly (they were previously disabled).
+
+ * test/simple-at.c:
+ Change the command keygrab for this demo to "Control+Alt", so as
+ to conflict with fewer other key commands on the system; this
+ means that the quit command for "simple-at" is now "Ctrl-Alt-q".
+
+ Removed a pointlessly-chatty keylistener for unshifted keys
+ (shifted keys are still reported).
+
+2002-02-01 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/remoteobject.h:
+ * libspi/remoteobject.c:
+ Added definitions for special AtkObject subtype, required for
+ support of remote components (specifically, used by BonoboControl
+ accessibility implementation).
+
+2002-01-02 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * cspi/spi.h: synched relation types with ATK
+
+ * cspi/spi_accessible.c: Added implementations of
+ AcccessibleRelation_* methods
+
+ * idl/Accessibility_Relation.idl: added getRelationTypeName
+ method. Synched known relation types with ATK. Allowed for
+ relation type extension with the RELATION_EXTENDED type.
+
+ * libspi/relation.c: Provided implementations for
+ AccessibleRelation methods.
+
+2002-01-01 Bill Haneman <bill.haneman@sun.com>
+
+ API tweaks for today's API 'freeze'.
+
+ * idl/*:
+ Added placeholder functions to allow future compatible expansion
+ of the IDL interfaces.
+
+ * idl/Accessibility_Registry.idl:
+ Changed generateKeyEvent to generateKeyboardEvent. Changed
+ signature of this method to accept an optional keystring in
+ parameter (for complex text input synthesis) and changed use of
+ simple 'boolean' parameter in registerKeystrokeListener to a
+ struct, EventListenerMode.
+
+ * cspi/spi_accessible.c:
+ * cspi/spi.h:
+ * cspi/spi_streamablecontent.c:
+ Added references to AccessibleStreamableContent interface, and
+ definition and implementation of AccessibleStreamableContent
+ C bindings.
+
+ * cspi/spi_registry.c:
+ * cspi/spi.h:
+ Changed generateKeyEvent API to generateKeyboardEvent,
+ taking a new (optional) keystring parameter to support complex
+ text input.
+
+ * at-bridge/*:
+ * atk-bridge/*:
+ Renamed directory (to better reflect its actual purpose, bridging
+ from at-spi to ATK). The .so module is also now named
+ libatk-bridge.so.
+
+ * idl/Accessibility_Hypertext.idl:
+ * libspi/accessible.c:
+ * libspi/hypertext.h:
+ * libspi/hypertext.c:
+ Changed Accessibility_Hypertext to *not* derive from
+ Accessibility_Text.
+
+ * cspi/spi_registry.c:
+ Added list of legal event type names for 'window' events, which
+ completes the registry event API.
+
+2001-12-22 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * at-bridge/bridge.c: Added registration for separate
+ "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
+ signals. If either of the first two parameters to the generic
+ bridge signal handler are ints, they are passed on as event
+ details. This allows an AT to determine what text was inserted.
+
+2001-12-21 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ Fixed regressions in generateKeyEvent caused by the removal of
+ gdk_init from registryd; we now use pure X calls to connect to the
+ display, which makes sense because deviceeventcontroller already
+ uses a fair bit of X API (should eventually be migrated to a
+ 'portability layer').
+
+ * registryd/desktop.c:
+ Fixed minor regression in spi_desktop_init, changed the way the
+ desktop name is being set to work with new spi_base API
+ (gobject-based, rather than AtkObject-based).
+
+ * registryd/Makefile.am:
+ Minor revision of makefile to use XTST_LIBS variable rather than
+ hard-wiring the Xtst LD_ADD element.
+
+ * test/keysynth-demo.c:
+ Tweaked an output message; added initialization of the
+ 'keystrings' member of the "switch listener" key_set.
+
+ * libspi/relation.c:
+ Squashed compile-time warning.
+
+ * libspi/accessible.c:
+ Cosmetic and formatting fixes, renamed a static method.
+
+2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * libspi/accessible.c
+ * libspi/action.c
+ * libspi/application.c
+ * libspi/base.c
+ * libspi/base.h
+ * libspi/component.c
+ * libspi/editabletext.c
+ * libspi/hyperlink.c
+ * libspi/hypertext.c
+ * libspi/image.c
+ * libspi/selection.c
+ * libspi/table.c
+ * libspi/text.c
+ * libspi/value.c
+ * registryd/desktop.c:
+ Changed SpiBase to contain a GObject pointer rather than an AtkObject
+
+2001-12-17 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Registry.idl:
+ Added boolean member 'is_text' to DeviceEvent. This is for the
+ use of key events, and helps prevent ambiguity between composed
+ key strings and keysym names, since both may potentially be
+ returned in the 'event_string' member.
+
+ * at-bridge/bridge.c:
+ * registryd/deviceeventcontroller.c:
+ Use the 'is_text' member when notifying device event listeners.
+ Knon issue: composed characters are not dealt with correctly by
+ the global key listener implementation yet.
+
+2001-12-17 Bill Haneman <bill.haneman@sun.com>
+
+ * at-bridge/bridge.c:
+ Namespaced local static methods to spi_atk_bridge_* where
+ previously named bridge_*, and spi_* elsewhere.
+
+ * at-bridge/bridge.c:
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ Added demarshalling/conversion for string member of
+ Accessibility_DeviceEvent to AccessibleKeystroke.
+
+ * registryd/deviceeventcontroller.c:
+ Added code to fill the Accessibility_DeviceEvent key string value
+ member for global key events (i.e. from XGrabKey), to match
+ behavior of Accessibility_DeviceEvent from the toolkit key events
+ from the bridge. Fixed timestamp in global key event notifications.
+
+ * test/simple-at.c:
+ Added printout of key event's string value to
+ report_ordinary_key_event, for demo/debugging purposes.
+
+2001-12-15 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Registry.idl:
+ Removed Accessibility_KeyStroke structure in favor of generic
+ Accessibility_DeviceEvent structure.
+ Changed Accessibility_ControllerEventMask from a struct to an
+ unsigned long.
+
+ * at-bridge/bridge.c:
+ Changed APIs to use DeviceEvent structure as above, and removed
+ bogus casting between these event structures.
+
+ * cspi/spi-listener.h:
+ Added keystring member of AccessibleKeystroke structure, to enable
+ matching on event "names" rather than only hardware codes and
+ keysyms.
+
+ * cspi/spi.h:
+ Added keystrings member of AccessibleKeySet struct, to allow
+ matching on event names (as above).
+ Added declarations for SPI_createAccessibleKeySet and
+ SPI_freeAccessibleKeySet. Due to changes in libspi, we now pass
+ event modmasks directly as unsigned ints rather than structs with
+ refcounts, in the DeviceEventController methods.
+
+ * cspi/spi_registry.c:
+ Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
+
+ * cspi/spi-roletypes.h:
+ Added documentation of newly added SPI Roles.
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ Changes in support of API changes above.
+
+ * libspi/accessible.c:
+ Converted APIs to use DeviceEvent structure (see IDL changes
+ above).
+
+ * registryd/deviceeventcontroller.c:
+ Added DEControllerGrabMask structure to track keygrabs not only by
+ modmask but by keyset as well; this allows us to do "global"
+ (i.e. X) keygrabs on a per-key or keyset basis rather than always
+ grabbing on AnyKey and then filtering after-the-fact.
+ Bugfixes for event filtration mean that we don't get false matches
+ on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
+
+ * registryd/deviceeventcontroller.c:
+ Namespaced a number of static methods to use spi_ prefix. Major
+ revision to internals of global (i.e. X) key grabs.
+
+ * registryd/deviceeventcontroller.h:
+ Removed keymask_list and added keygrabs_list to
+ SpiDeviceEventController struct.
+
+ * test/simple-at.c:
+ Added use of SPI_createAccessibleKeySet API when creating a
+ listener for only one key. Attach a listener to "shift spacebar
+ SPI_KEY_RELEASE" as a demonstration. Changed (incorrect) usage of
+ X key event names to SPI key event names, so that listeners are
+ registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
+
+ * test/keysynth-demo.c:
+ Changed (incorrect) use of X key event names (KeyPressed,
+ KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
+
+
+2001-12-12 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/accessible.c:
+ Convert all AtkRole enumerations to Accessibility_Role enums when
+ getting a role from an AtkObject.
+
+ * cspi/spi_accessible.c:
+ Complete the conversion of Accessibility_Role enums at runtime to
+ AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
+ role enums correctly match those given in spi-roletypes.h.
+ Re-synchronize the local names list for AccessibleRole_getName ().
+ AccessibleRole_getName is now deprecated, since it duplicates the
+ more reliable Accessible_getRoleName.
+ Added some role types from Accessibility_Role.idl.
+
+ * idl/Accessibility_Role.idl:
+ Added some role types used by AtkRole.
+
+2001-12-12 Bill Haneman <bill.haneman@sun.com>
+
+ * cspi/spi.h:
+ * cspi/spi_registry.c:
+ * cspi/spi_event.c:
+ * cspi/cspi-bonobo-listener.c:
+ Namespaced all methods that did not begin with an "SPI_" or
+ "Accessible" prefix to "SPI_".
+
+ * cspi/spi_main.c:
+ Homogenized internal function namespace to "cspi_" for statics.
+
+ * test/*.c:
+ Patched tests to use the new CSPI API.
+
+ * docs/reference/cspi/at-spi-cspi-sections.txt:
+ Updated docs to reflect namespace changes, and added a number of
+ methods to the documentation.
+
+ * registryd/registry.c:
+ Changed use of strings and string hashes in listener event
+ matching and parse_event_string to use GQuark, which is guaranteed
+ unique.
+
+ * registryd/registry.h:
+ Squashed annoying warning.
+
+ * idl/Accessibility_Role.idl:
+ Extended range of available Accessibility_Role values.
+
+ * cspi/spi_accessible.c:
+ Re-ordered role names.
+
+2001-12-12 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Value.idl:
+ Revert use of union back to CORBA_double, since the double type is
+ more efficient and can contain the other types without loss of
+ precision.
+
+ * idl/Accessibility_Accessible.idl:
+ Added method Accessibility:Accessible:getRoleName, to complement
+ Accessibility:Accessible:getRole.
+
+ * cspi/spi_accessible.c:
+ * cspi/spi.h:
+ Added C binding for above, Accessible_getRoleName (), and changed
+ signature of Accessible_getRole () to return an AccessibleRole.
+
+ * cspi/spi-roletypes.h:
+ Changed AccessibleRole_getName to return a char * instead of a
+ const char *. This method is now at least temporarily deprecated
+ in favor of asking Accessibles for their RoleNames directly.
+
+ * libspi/value.c:
+ Revert to match Accessibility_Value.idl;
+
+ * cspi/spi_value.c:
+ * cspi/spi.h:
+ Change signature of AccessibleValue methods to use double rather
+ than float.
+
+ * cspi/spi.h:
+ * cspi/spi_accessible.c:
+ Changed Accessible_getRole to return an AccessibleRole enum rather
+ than a UTF-8 string. The UTF-8 string can still be obtained via
+ AccessibleRole_getName ().
+
+ * test/test-simple.c:
+ Add test_action. Small fixup to match API change to Accessible_getRole.
+
+ * libspi/action.c:
+ Bugfix for get_action_from_servant ().
+
+2001-12-11 Michael Meeks <michael@ximian.com>
+
+ * libspi/libspi.h: remove registry.h and
+ desktop.h, deviceeventcontroller.h
+
+ * libspi/Makefile.am: remove registry.[ch],
+ desktop.[ch], deviceeventcontroller.[ch]
+
+ * registryd/Makefile.am: add registry.[ch],
+ desktop.[ch], rename registryd.c to registry-main.c.
+ add deviceeventcontroller.[ch]
+
+2001-12-11 Bill Haneman <bill.haneman@sun.com>
+
+ * test/simple-at.c:
+ Replace setenv() call with putenv ().
+
+ * libspi/component.c:
+ Bugfix in AccessibleComponent_getExtents (),
+ (from Adi Dascal).
+
+2001-12-11 Michael Meeks <michael@ximian.com>
+
+ * libspi/image.c (impl_getImageExtents): impl.
+ (spi_image_class_init): upd.
+
+ * cspi/spi_image.c
+ (AccessibleImage_getImageDescription): fix daft bug
+ of mine (doh).
+
+ * test/test-simple.c (global_listener_cb): update
+ to only quit if not --poke
+ (main): catch --poke.
+ (validate_accessible): upd. dumping, call test_image
+ (test_image): impl.
+
+ * libspi/Makefile.am (IDL_DEPS): fixup the IDL
+ dependencies.
+
+ * idl/Accessibility.idl: update all IDL includes.
+
+ * idl/*.idl - rename to namespace - this sucks, blame
+ mjs' bad decision for oafd.
+
+ * test/test-simple.c (create_test_window): add more tests.
+ (create_tree): split this out.
+ (validate_accessible): bugfix.
+
+2001-12-11 Michael Meeks <michael@ximian.com>
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (cspi_kestroke_listener_unref),
+ (cspi_event_listener_unref): impl. undoing previous
+ homenous environment - for Bill.
+
+ * cspi/spi_table.c (long_seq_to_array): use
+ malloc instead.
+
+ * cspi/spi_main.c: split out all bonoboish bits into
+ bonobo/
+
+ * cspi/spi-impl.h: upd. typedefs.
+
+ * cspi/spi_registry.c: update to lowlevel API,
+ return booleans to indicate success in some places.
+
+ * cspi/spi_event.c: update to lowlevel API.
+
+ * cspi/bonobo/Makefile.am: add.
+
+ * cspi/bonobo/cspi-lowlevel.h: add
+
+ * cspi/bonobo/cspi-bonobo.c: add
+
+ * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
+
+ * cspi/Makefile.am: remove spi-listener-impl.[ch],
+ (SUBDIRS): add bonobo, link in the libs.
+
+ * cspi/spi-util.c: kill this file.
+
+ * TODO: merge in my bits.
+
+2001-12-11 Michael Meeks <michael@ximian.com>
+
+ * test/test-simple.c (test_value, test_table, main):
+ remove unused variables causing warnings.
+
+ * configure.in: cleanup checks - require gail.
+
+2001-12-11 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Value.idl:
+ Changed Value interface to use SValue (scalars) rather than
+ assuming all values are floats. This allows floats, doubles,
+ longs, shorts, and unsigned values to be manipulated.
+ Introduced Accessibility:SValue union.
+
+ * libspi/value.c:
+ Updated to use new API above, and to work correctly with GValues
+ of different types in AtkValue.
+
+ * cspi/spi_value.c:
+ Updated to use new API above. cspi's API is as yet unchanged.
+
+ * TODO:
+ Updated the Value revision action item.
+
+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: