-2001-22-11 Bill Haneman <bill.haneman@sun.com>
+2003-01-27 Padraig O'Briain <padraig.obriain@sun.com
+
+ * registryd/desktop.c: Implement AccessibleComponent for SpiDesktop.
+ This is done by implementing AtkComponent for SpiAtkDesktop, which is
+ the AtkObject within an SpiDesktop.
+ This addresses bug #101524.
+
+ * registryd/deviceeventcontroller.c (spi_device_event_controller_init):
+ Remove call to gdk_init().
+
+ * registryd/registry.c (spi_registry_init): Add call to gdk_init()
+ so that Display is set when SpiDesktop is created.
+
+2003-01-21 Padraig O'Briain <padraig.obriain@sun.com
+
+ * registryd/deviceeventcontroller.c: Add include of <sys/time.h>
+ This fixes bug #102830.
+
+2003-01-15 Padraig O'Briain <padraig.obriain@sun.com
+
+ * test/test-simple.c: Update to take account of fact that GailButton
+ now implements AtkText.
+ (create_text_window): Set name on AtkObject for GtkEntry.
+ (validate_accessible): Check accessible name before calling test_text().
+
+ * libspi/Makefile.am: Fix problem with building outside of source
+ directory. Bug #98120.
+
+ * cpsi/spi_table.c (AccessibleTable_getNSelectedColumns): Fix
+ typo in documentation comments. Bug #94275.
+
+2003-01-15 Padraig O'Briain <padraig.obriain@sun.com
+
+ * libspi/text.c (impl_getBoundedRanges): Bug fix.
+
+2003-01-10 Padraig O'Briain <padraig.obriain@sun.com
+
+ * libspi/text.c:
+ Add includes to avoid compiler warnings on Solaris.
+ (impl_getRangeExtents): Bug fix.
+
+2002-12-17 Bill Haneman <bill.haneman@sun.com
+
+ Fix for 100944, [API addition approved by Gman and murrayc].
+
+ * NEWS: updated.
+
+ * configure.in:
+ Revved to 1.1.8.
+
+ * idl/Accessibility_Text.idl:
+ (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
+ (Text::getRangeExtents): New method for efficient
+ bounds query of a text range.
+ (Text::getBoundedRanges): New method for efficient
+ clipping of text to bounding boxes.
+ (unImplemented7, unImplemented8):
+ Removed these padding methods to preserve bincompat.
+
+ * libspi/text.c:
+ (impl_getRangeExtents): implementation of new IDL.
+ (impl_getBoundedRanges): implementation of new IDL.
+ (SpiTextRect): Internal use struct.
+ (_spi_text_rect_union): internal method, calculates union of two
+ SpiTextRect bounding rects.
+ (_spi_text_range_seq_from_gslist): internal method, allows us
+ to build our sequence efficiently as a gslist then convert it
+ to a CORBA seq.
+ (_spi_bounds_contain): internal method, determines whether
+ a text character is "in" or "out" of a clip rect according to
+ values of TEXT_CLIP_TYPE.
+ (spi_text_class_init): Initialize the new methods in the epv.
+
+ * cspi/spi.h:
+ (AccessibleTextClipType): New enum used by screen review api.
+ (AccessibleTextRange): New struct used by screen review api.
+ (AccessibleText_getRangeExtents):
+ cspi binding for Accessibility_Text_getRangeExtents.
+ (AccessibleText_getBoundedRanges):
+ cspi binding for Accessibility_Text_getBoundedRanges.
+ (AccessibleTextRange_freeRanges): convenience method.
+
+ * cspi/spi_text.c:
+ (AccessibleText_getRangeExtents):
+ cspi binding for Accessibility_Text_getRangeExtents.
+ (AccessibleText_getBoundedRanges):
+ cspi binding for Accessibility_Text_getBoundedRanges.
+ (AccessibleTextRange_freeRanges): convenience method.
+ (get_accessible_text_clip_type): internal conversion method.
+ (get_accessible_text_ranges_from_range_seq): internal conversion method.
+
+ * registryd/deviceeventcontroller.c:
+ (spi_dec_mouse_check):
+ Improved behavior for mouse:abs events
+ [same granularity as mouse:rel events, and no
+ events when mouse is idle].
+
+2002-12-16 Michael Meeks <michael@ximian.com>
+
+ * cspi/spi_accessible.c (spi_state_to_corba): rename.
+
+ * libspi/stateset.c (state_spi_to_atk): split out
+ ( fix several remote array bounds nasties )
+ (spi_atk_state_set_from_sequence, impl_contains, impl_add),
+ (impl_remove): make safe from array bounds issues.
+ (spi_atk_state_from_spi_state): impl.
+
+ * libspi/stateset.h (spi_state_set_cache_is_empty):
+ add a set of wrapper defines to get layering right.
+
+ * cspi/spi_accessible.c: update state set stuff to
+ use it.
+
+2002-12-14 Michael Meeks <michael@ximian.com>
+
+ * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
+ to avoid 2 roundtrips to the registry per key event
+ (spi_atk_bridge_key_listener): upd.
+ (deregister_application): release the dec.
+
+ * registryd/registry.c (notify_listeners_cb):
+ bin lots of re-enterant complexity - we no longer
+ do a round-trip bonobo ref here, ensure that a single
+ listener's exception failure won't poison all other
+ notifications.
+ (impl_registry_notify_event): bin obvious memory leak.
+
+2002-12-13 Michael Meeks <michael@ximian.com>
+
+ * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
+ init the ev so the error is meaningful.
+ (spi_atk_bridge_key_listener): ditto.
+
+ * cspi/spi_main.c (cspi_ev): init the ev so we start
+ with a clean slate, otherwise the first exception
+ kills us completely.
+
+ * cspi/spi_text.c (get_accessible_text_boundary_type):
+ add a fallthrough for no warnings.
+
+ * cspi/spi_registry.c: prune unused warnings.
+
+ * cspi/spi_main.c (cspi_object_take): fix
+ mind-blowing brokenness ( by watching the compile
+ warnings )
+
+ * cspi/spi_accessible.c (Accessible_getStateSet):
+ re-impl. to use an AtkStateSet.
+ (spi_state_type_from_accessible_state),
+ (init_state_table): bin these.
+
+ * libspi/stateset.c (spi_atk_state_set_from_sequence):
+ split out from
+ (atk_state_set_from_accessibility_state_set): here.
+
+ * cspi/spi_accessible.c (spi_state_to_atk): impl.
+ (AccessibleStateSet_contains, AccessibleStateSet_ref),
+ (AccessibleStateSet_unref, AccessibleStateSet_contains),
+ (AccessibleStateSet_add, AccessibleStateSet_remove),
+ (AccessibleStateSet_equals, AccessibleStateSet_compare),
+ (AccessibleStateSet_isEmpty): re-write to use a local
+ AtkStateSet object.
+
+2002-12-13 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in: Revved to 1.1.7 (new keymask vals).
+
+2002-12-10 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/keymasks.h:
+ Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
+
+2002-12-10 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * cspi/spi_event.c
+ (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent()
+ to compare two CORBA_TypeCodes.
+ (cspi_internal_event_add): Silence warning from FORTE compiler.
+
+ * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to
+ avoid implicit declaration of functions.
+
+2002-12-09 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk-bridge/bridge.c:
+ (spi_atk_bridge_init_event_type_consts): Store signal id for
+ active-descendant-changed signal.
+ (spi_atk_register_event_listeners): Add signal listener for
+ active-descendant-changed signal,
+ (spi_atk_bridge_signal_listener): Move code in function
+ spi_atk-signal_emit_event() into this function.
+ Add support for active-descendant-changed
+ Update support for child-changed signal.
+ (spi_bridge_window_event_listener): Silence warning.
+
+ * libspi/spi_private.[ch]:
+ (spi_init_any_object): Change second parameter from CORBA_Object to
+ CORBA_Object*.
+ Omit call to CORBA_Object_duplicate().
+ Set CORBA_any's _value to CORBA_Object*.
+
+2002-12-06 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Revved to 1.1.6.
+
+ * cspi/spi.h:
+ (AccessibleEvent_ref, AccessibleEvent_unref):
+ New methods, for persisting an event outside the emission context.
+ Must be used if the new accessor methods are to be called
+ outside of the event listener's callback.
+
+ * cspi/bonobo/cspi-bonobo.c:
+ (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
+ as second parameter instead of NULL, so we can call
+ cspi_check_ev afterwards.
+
+ * cspi/spi_main.c:
+ (cspi_object_take): New internal method,
+ converts a CORBA_Object reference to a hard ref on
+ an Accessible if possible, returning NULL if the object
+ reference is invalid or an Accessible * otherwise.
+
+ * cspi/spi_event.c:
+ (AccessibleEvent_ref):
+ Increment the event's internal private refcount, and
+ add the event's internal struct to an internal cache
+ if it's not already there.
+ (AccessibleEvent_unref):
+ Decrement the event's refcount and remove it from
+ the cspi event cache if refcount==0.
+ (cspi_event_compare): New private method.
+ Compares two event structs via their ids. Used
+ for queue lookup.
+ (cspi_internal_event_lookup): New private method.
+ (cspi_internal_event_check): New private method,
+ a 0-order sanity check for events to make sure their
+ private data is intact.
+ (cspi_internal_event_add, cspi_internal_event_remove):
+ New private methods for managiing the event cache.
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (cspi_event):
+ Initialize the new private data elements (id, magic, ref_count).
+
+ * atk-bridge/bridge.c:
+ (spi_atk_bridge_signal_listener):
+ Fixed bug #100530, passing wrong params to emission func.
+
+ * registryd/deviceeventcontroller.c:
+ (spi_dec_button_update_and_emit):
+ Fixed type in mask bit operations; fix for #99799.
+
+2002-12-02 Bill Haneman <bill.haneman@sun.com>
+
+ Removed some of the more dangerous workarounds from
+ previous commit; they are only needed by GOK, which
+ in reality should be using another method to accomplish
+ the goals. So on reconsideration some of the workarounds
+ need to be reverted:
+
+ * registryd/deviceeventcontroller.c:
+ (spi_keycodes_contain, spi_dec_init_keycode_list):
+ Removed these methods, used only by a nasty hack to try
+ and detect whether a key synthesis should be allowed
+ to reset the XKB latch state or not. This code was only
+ required to work around an interaction between GOK,
+ button events, and XKB.
+ (impl_generate_key_event):
+ Removed hack at end of key generation that tried to
+ "do the right thing" if XKB latch keys were generated
+ in the midst of button press/release pairs.
+
+ * configure.in:
+ Added a check for HAVE_XINPUT. Not normally used yet.
+
+2002-11-25 Bill Haneman <bill.haneman@sun.com>
+
+ Workarounds and fixes for mouse event/XKB interaction.
+
+ * registryd/deviceeventcontroller.c:
+ (spi_keycodes_contain, spi_dec_init_keycode_list):
+ New internal methods.
+ (spi_dec_set_unlatch_pending):
+ Split the method that tells XKB to expect an
+ unlatch (and revert it) out of the rest of the
+ event handling code. This method is called by the
+ two mouse event handlers (the poll and the filter).
+ (spi_dec_update_and_emit, spi_dec_mouse_check):
+ New methods split from spi_dec_poll_mouse_moved.
+ The second one is now called from inside the filterFn
+ when an XKB delatch event is received, to determine
+ whether to revert the delatch or not.
+ (spi_poll_mouse_moved): Refactor; also we can now
+ properly handle the case where multiple button states
+ have changed between polling cycles and we didn't get
+ notified due to another client's grab.
+ (global_filter_fn):
+ Synchronize the server while handling an XKB notification.
+ Ugly, but apparently necessary to avoid nasty races.
+ Check the mouse state on receipt of an XKB latch change,
+ to decide whether to revert the latch or not. (Latches are
+ reverted if there is an immediately preceding mouse button
+ event that a client has consumed, in which case we don't want
+ the user to see the side-effect of the event).
+ (spi_device_event_controller_forward_mouse_event):
+ Check for modifier events and fire before resetting mouse_mask_state,
+ prevents losing modifier events.
+
+ (impl_generate_keyboard_event):
+ If we've just generated a keyboard event for a non-shift key,
+ we don't want to revert the pending XKB latch.
+ Otherwise, check the modifier state (via a call to
+ spi_dev_mouse_check) and set the relatch mask to
+ that state before returning.
+
+2002-11-24 Bill Haneman <bill.haneman@sun.com>
+
+ * NEWS:
+ Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
+ retagged).
+
+ * atk-bridge/bridge.c:
+ (spi_atk_register_event_listeners):
+ Don't re-register for ATK events if the registry has died
+ and the app needs to re-register; the ATK listeners are in
+ process and doing so will cause duplicate emission.
+
+ * registryd/deviceeventcontroller.c:
+ (spi_poll_mouse_moved):
+ Reformat the source, detect and emit multiple button-change
+ events (i.e. if multiple buttons have changed between poll
+ intervals).
+ Add code to detect mouse-down events even when the pointer
+ is grabbed; workaround for GOK bug 98420.
+ (spi_controller_register_with_devices):
+ Call XTestGrabControl with 'impervious' flag set to True,
+ allows us to synthesize events and query the pointer even during
+ an active grab by another client.
+ (spi_device_event_controller_forward_mouse_event):
+ Set the mouse_mask_state to the mouse_button_state from
+ the intercepted event, to synchronize the grab listener with
+ the poll state.
+
+2002-11-20 Bill Haneman <bill.haneman@sun.com>
+
+ * cspi/spi_accessible.c:
+ (AccessibleRole_getName):
+ Added necessary strings for making this (deprecated)
+ method work with the new role types.
+ (init_role_table, role_table):
+ Added definition of SPI_ROLE_APPLICATION.
+
+ * libspi/spi-roletypes.h:
+ Added SPI_ROLE_APPLICATION.
+
+ * idl/Accessibility_Role.idl:
+ Added ROLE_APPLICATION.
+
+ * docs/reference/cspi/at-spi-cspi-decl.txt:
+ Added SPI_ROLE_APPLICATION to docs.
+
+2002-11-20 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * cspi/spi_accessible.c
+ (cspi_init_role_table): Do not write beyond end of role_table.
+ (Accessible_getRole): Use correct type for value returned by
+ Accessibility_Accessible_getRole().
+
+ * libspi/accessible.c (spi_init_role_lookup_table): Do not write
+ beyond end of role_table. (This fixes bug #98269)
+
+ * libspi/application.c: Add include file spi-private.h for
+ definition of spi_init_any_nil.
+
+2002-11-19 Bill Haneman <bill.haneman@sun.com>
+
+ FIX for bug 99024.
+
+ * libspi/spi-private.h:
+ Added DGB() macro, and extern int _dbg declaration.
+
+ * registryd/registry.c:
+ (definitions) storage for _dbg.
+ (spi_registry_init):
+ Get environment variable "AT_SPI_DEBUG".
+ (spi_registry_set_debug):
+ New method, to initialize _dbg value.
+ (spi_listener_struct_new, spi_registry_object_finalize):
+ (notify_listeners_cb):
+ Changed fprintfs to use DBG and g_warning().
+
+ * registryd/deviceeventcontroller.c:
+ (_deregister_keygrab, spi_controller_register_device_listener):
+ Changed debug/warning messages to use DBG macro.
+
+ * libspi/listener.c:
+ (impl_notify_event):
+ Changed warning messages to use DBG macro and g_warning().
+
+ * atk-bridge/bridge.c:
+ (atk_bridge_init, spi_atk_bridge_get_registry):
+ (spi_atk_bridge_exit_func):
+ (spi_atk_bridge_property_event_listener):
+ Changed status, warning, and error messages to use
+ g_warning, g_message, and DBG macros.
+
+ (atk_bridge_init):
+ Read the state of the AT_SPI_DEBUG environment variable
+ and set a local '_dbg' accordingly.
+
+2002-11-19 Bill Haneman <bill.haneman@sun.com>
+
+ FIXES for 98836, 98842, other bugs.
+
+ * configure.in:
+ Revved to 1.1.4, interface-age=4, binary-age=4.
+
+ * registryd/deviceeventcontroller.c:
+ (statics):
+ Fixed crasher bug in last_mouse_pos initialization.
+
+ * registryd/registry.c:
+ (desktop_add_application, desktop_remove_application):
+ Added (and then commented out) some support for
+ object context marshalling. [TODO]
+
+ * atk-bridge/bridge.c:
+ (spi_atk_bridge_event_context_create):
+ Commented out object context creation until it can
+ be properly tested and debugged.
+
+ * registryd/registry.c:
+ (impl_registry_notify_event):
+ Fixed crasher bug, we were calling
+ spi_re_entrant_list_foreach () with an empty list.
+
+2002-11-18 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Action.idl:
+ * idl/Accessibility_Component.idl:
+ * idl/Accessibility_Desktop.idl:
+ * idl/Accessibility_Event.idl:
+ * idl/Accessibility_Hyperlink.idl:
+ * idl/Accessibility_Image.idl:
+ * idl/Accessibility_Relation.idl:
+ * idl/Accessibility_Selection.idl:
+ * idl/Accessibility_State.idl:
+ * idl/Accessibility_Value.idl:
+ Updated unimplemented slot count to minimum of
+ four for all interfaces, for ABI freeze.
+
+ * idl/Accessibility_EditableText.idl:
+ * idl/Accessibility_Text.idl:
+ Updated unimplemented slot count to six
+ for ABI freeze.
+
+ * idl/Accessibility_Registry.idl:
+ Updated unimplemented slot count to six
+ (also for DeviceEventController),
+ for ABI freeze.
+
+ * idl/Accessibility_Table.idl:
+ Updated unimplemented slot count to eight,
+ for ABI freeze.
+
+ * idl/Accessibility_Event.idl:
+ Added CORBA_any "any_data" member to Event struct.
+
+ * idl/Accessibility_Event.idl:
+ Added CORBA_any "any_data" member to Event struct.
+
+ * atk-bridge/bridge.c:
+ (statics):
+ atk_signal_text_changed, atk_signal_child_changed,
+ signal ids queried from gtype system.
+ (AtkBridgeEventContextType): New enum.
+ (AtkBridgeEventContextData): New struct.
+ (AtkBridgeEventContext): New struct.
+ (atk_bridge_init_event_type_consts):
+ New method, initializes type contants for comparison
+ prior to emit_eventv.
+ (atk_bridge_event_context_init): New method,
+ initializes a CORBA_any from an AtkBridgeEventContext.
+ (atk_bridge_focus_tracker): Call spi_init_any_nil to
+ initialize the event.any_data struct.
+ (spi_atk_bridge_event_context_create): New method,
+ creates an AtkBridgeEventContext from signal/event info.
+ (spi_atk_bridge_event_context_free): New method.
+ (spi_atk_emit_eventv): Changed to take an
+ AtkBridgeEventContext parameter. We now initialize
+ the event.any_data member prior to notifying the
+ Registry, via the AtkBridgeEventContext.
+ (spi_atk_bridge_property_event_listener):
+ (spi_atk_bridge_state_event_listener):
+ Match emit_eventv signature.
+ (spi_atk_bridge_object_event_listener):
+ Match emit_eventv signature, and create an
+ event context from the event details.
+ Free the event context afterwards.
+ (spi_atk_bridge_window_event_listener):
+ Create an event context, pass it to the
+ emit_eventv call.
+
+ * cspi/spi_event.c:
+ (AccessibleEvent_getContextString):
+ (AccessibleEvent_getContextObject):
+ New methods, allow query of AccessibleEvent objects
+ for more context details (via the "any_data" member
+ of the Event struct, above).
+
+ * cspi/spi.h:
+ Definitions for AccessibleEvent_getContextString
+ and AccessibleEvent_getContextObject.
+
+ * cspi/spi_listener.h:
+ (InternalEvent): New struct.
+
+ * cspi/spi_event.c:
+ (AccessibleEvent_getContextString):
+ (AccessibleEvent_getContextObject):
+ Implementations of new methods, for obtaining
+ additional context information from some event types.
+
+ * cspi/spi_registry.c:
+ (SPI_registerGlobalEventListener):
+ Added mention of active-descendant-changed event in docs.
+
+ * cspi/cspi-bonobo-listener.c:
+ (cspi_event):
+ Marshal the any into the AccessibleEvent via
+ InternalEvent.
+
+ * libspi/spi-private.h:
+ #include <orbit/orbit.h>
+ (spi_init_any_nil):
+ (spi_init_any_string):
+ (spi_init_any_object):
+ New convenience function declarations.
+
+ * libspi/util.c:
+ (spi_init_any_nil):
+ (spi_init_any_string):
+ (spi_init_any_object):
+ New convenience function implementations.
+
+ * registryd/deviceeventcontroller.c:
+ (spi_poll_dec_mouse_moved):
+ (spi_device_event_controller_forward_mous_event):
+ Initialize any_data member of event.
+ (spi_deregister_controller_device_listener):
+ Fix incorrect param pass which was preventing deregistration.
+
+ * registryd/registry.c:
+ (desktop_add_application):
+ (desktop_remove_application):
+ Add object data to event's any_data before dispatch.
+ (parse_event_type):
+ Fix for error messages from GAIL.
+
+ * test/event-listener-test.c:
+ Test new ContextString and "any_data" API:
+ (report_text_event): New method query and output context string.
+ (main): register a new text listener with report_text_event
+ callback.
+
+2002-11-19 Darren Kenny <darren.kenny@sun.com>
+
+ Fixes for bugs 98127 and 97914.
+ * cspi/spi-roletypes.h:
+ Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
+ SPI_ROLE_RULER
+ * cspi/spi-statetypes.h:
+ Added SPI_STATE_MANAGES_DESCENDANTS
+ * cspi/spi.h:
+ Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
+ SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
+ * cspi/spi_accessible.c:
+ Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
+ Added mapping from SPI_STATE_MANAGES_DESCENDANTS to
+ Accessibility_STATE_MANAGES_DESCENDANTS
+ * libspi/accessible.c:
+ Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
+ Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER}
+ As requested by Bill, I also cleaned up the alignment.
+ * libspi/relation.c:
+ Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
+ EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
+ * libspi/stateset.c:
+ Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
+ Accessibility_STATE_MANAGES_DESCENDANTS
+ * docs/reference/cspi/tmpl/spi_accessible.sgml:
+ Document changes reflecting modifications to roles.
+ * docs/reference/cspi/tmpl/spi_relation.sgml:
+ Document changes reflecting modifications to relations.
+ * docs/reference/cspi/tmpl/spi_stateset.sgml:
+ Document changes reflecting modifications to states.
+
+2002-11-17 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Revved to 1.1.3, interface-age=3, binary-age=3.
+ Added REBUILD macro.
+
+ * test/Makefile.am:
+ Removed accessx-gui from the tests, since we have a nice
+ keyboard accessibility capplet now :-)
+
+ * test/keysynth-demo.c:
+ (increment_scan): removed do-nothing default: case,
+ silences warning.
+
+ * test/visual-bell.c:
+ (main) : removed do-nothing default: case,
+ silences warning.
+
+ * cspi/spi_action.c:
+ (AccessibleAction_getKeyBinding_):
+ Documented keybinding string format.
+ FIX for bug 97916.
+
+ * cspi/spi_text.c:
+ (AccessibleText_getAttributes):
+ Documented the text attribute string format.
+ It's changed to use semicolon delimiters also,
+ to prevent clashes with CSS attributes, but the old
+ trick of looking for ", " strings will still work
+ (as unreliably as ever). Fix for bug related to 97916.
+
+ * cspi/spi_event.c:
+ Include <cspi/bonobo/cspi-bonobo-listener.h>
+ Fixes build warning.
+ (SPI_freeAccessibleKeySet):
+ (AccessibleKeystrokeListener_addCallback):
+ (AccessibleKeystrokeListener_removeCallback):
+ Modify to use AccessibleDeviceListener API internally,
+ instead of AccessibleKeystrokeListener.
+
+ * idl/Accessibility_Event.idl:
+ Added two more empty slots to EventListener (for a total of four).
+
+ * idl/Accessibility_Accessible.idl:
+ Added four empty slots to Accessible interface.
+
+2002-11-15 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Registry.idl:
+ (KeyEventType, EventType):
+ Marked KeyEventType as deprecated; it duplicates
+ functionality of EventType, which has been extended to
+ include Mouse-button events.
+ (KeyEventTypeSeq): defined in terms of EventType.
+ (registerDeviceEventListener, deregisterDeviceEventListener):
+ New methods, for managing listeners to device events,
+ which potentially may consume them.
+
+ * cspi/spi-impl.h:
+ Added definition for AccessibleDeviceListener.
+
+ * cspi/spi-listener.h:
+ (enum AccessibleDeviceEventType):
+ Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
+ Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
+ for backwards compat.
+ (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
+ and typedef'd AccessibleKeystroke to it for back-compat.
+ (AccessibleDeviceListenerCB):
+ New function prototype typedef.
+
+ * cspi/spi.h:
+ (AccessibleDeviceEventMask): New typedef.
+ (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
+ (AccessibleKeyMaskType):
+ Set equivalent to AccessibleModifierMaskType for back-compat.
+ (SPI_createAccessibleKeystrokeListener):
+ (AccessibleKeystrokeListener_unref):
+ Deprecated in favor of equivalent (better-named) new API below..
+ keystroke listeners are like all device listeners.
+ (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
+ New API names for old features :-).
+ (AccessibleDeviceListener_addCallback):
+ (AccessibleDeviceListener_removeCallback):
+ (SPI_registerDeviceEventListener):
+ (SPI_deregisterDeviceEventListener):
+ New methods.
+
+ * cspi/spi_event.c:
+ (SPI_createAccessibleKeystrokeListener):
+ Use new preferred API, cspi_device_listener_new() and
+ cspi_device_listener_add_cb().
+ (AccessibleKeystrokeListener_removeCallback):
+ Use new preferred API, cspi_device_listener_remove_cb().
+ (AccessibleKeystrokeListener_unref):
+ Use new preferred API, cspi_device_listener_unref().
+ (SPI_createAccessibleDeviceListener):
+ (AccessibleDeviceListener_addCallback):
+ (AccessibleDeviceListener_removeCallback):
+ Implementation of new API.
+
+ * cspi/spi_registry.c:
+ (SPI_registerDeviceEventListener):
+ (SPI_deregisterDeviceEventListener):
+ Implementation of new API. Fixed memory leak and removed need to
+ allocate EventTypeSeq (thanks Michael for catching this).
+ Squashed a wayward CORBA_exception_free that shouldn't get called.
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (EventHandler):
+ Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
+ (cspi_key_event): renamed to cspi_device_event().
+ Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
+ Extended to handle mouse button events as well as key events.
+ (CSpiKeystrokeListener):
+ Class superceded by CSpiDeviceListener.
+ (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
+ These internal APIs changed to "*device_listener" from "*keystroke_listener".
+
+ * cspi/bonobo/cspi-bonobo-listener.h:
+ (CSpiKeystrokeListener):
+ Class superceded by CSpiDeviceListener.
+ (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
+ These internal APIs changed to "*device_listener" from "*keystroke_listener".
+
+ * libspi/Makefile.am:
+ Replaced keystrokelistener.h and keystrokelistener.c
+ with devicelistener.h and devicelistener.c; keystrokelisener.h
+ stub retained for back-compat.
+
+ * libspi/keystrokelistener.c:
+ Removed file.
+
+ * libspi/libspi.h:
+ Replaced inclusion of keystrokelistener.h with devicelistener.h.
+
+ * registryd/deviceeventcontroller.c:
+ (DEControllerListener): Added Accessibility_EventTypeSeq member.
+ (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
+ (DEControllerPrivateData): Added xkb settings data.
+ (spi_dec_poll_mouse_moved): Changed to dispatch device events for
+ button release events (which can't be captured via XGrabButton).
+ Don't dispatch via the 'normal' event mechanism if the device event was
+ consumed.
+ (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
+ Handle the typeseq data in its new location (see above).
+ (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
+ New methods, for "generic" device listeners.
+ (spi_controller_register_device_listener):
+ Now handle mouse event listeners as well as key listeners.
+ (spi_controller_notify_mouselisteners):
+ New internal method.
+ (spi_device_event_controller_forward_mouse_event):
+ Now we notify mouse device listeners as well as generating the
+ non-consumable "mouse:" events.
+ (global_filter_fn):
+ We must check and restore the XKB
+ modifier map if we consume the event, since the act of triggering
+ a mouse event will normally reset the XKB latch. This is required for
+ instance by GOK.
+ (spi_controller_register_with_devices):
+ Load the XKB settings when registering, and register for XKB
+ state notify events.
+ (spi_key_eventtype_seq_contains_event):
+ Renamed spi_eventtype_seq_contains_event, since it's used
+ internally for all device event types now.
+ (spi_key_event_matches_listener):
+ Uses spi_eventtype_seq_contains_event now.
+ (spi_device_event_controller_object_finalize):
+ Free the private data and the XkbKeyboard struct.
+ (impl_register_device_listener, impl_deregister_device_listener):
+ Implementation of new IDL.
+ (spi_deregister_controller_device_listener):
+ New internal method.
+ (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
+ More efficient implementation, we don't have to create a new
+ XkbControls structure every time we query.
+ (spi_device_event_controller_class_init):
+ Initialize the epv entries for the new IDL. Assign the
+ "spi-dec-private" quark.
+ (spi_device_event_controller_init):
+ Initialize the private data.
+ (spi_device_event_controller_forward_key_event):
+ Removed a bogus CORBA_exception_free() call.
+
+ * registryd/deviceeventcontroller.h:
+ Replaced inclusion of keystrokelistener.h with
+ devicelistener.h.
+
+ * test/event-listener-test.c:
+ (report_mouse_event):
+ New method.
+ (main):
+ Added mouse-event device listener.
+
+ * test/test-simple.c:
+ (create_test_window):
+ Fixed regression (we were instantiating a GtkRange,
+ which is now an abstract class). Also fixed to match
+ existing AtkRole names, this seems to have changed in ATK
+ awhile ago; too late now I think, and the new
+ mechanism is at least elegant and consistent with the
+ glib enum "nick" APIs.
+
+2002-11-15 Darren Kenny <darren.kenny@sun.com>
+
+ * idl/Accessibility_Relation.idl:
+ add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
+ RELATION_EMBEDS,RELATION_EMBEDDED_BY
+ * idl/Accessibility_Role.idl:
+ add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
+ * idl/Accessibility_State.idl:
+ add STATE_MANAGES_DESCENDANTS
+ * test/event-listener-test.c:
+ Added a listener for active-descendant events.
+
+2002-11-15 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk-bridge/bridge.c
+ (atk_bridge_init): If application is Bonobo component wait until top
+ level is added before registering
+ (spi_atk_bridge_do_registration): New function which contains code,
+ formerly in atk_bridge_init, to do application registration.
+ (spi_atk_bridge_toplevel_added): Signal called when top level
+ added to Bonobo component
+
+ This fixes bug #83134.
+
+2002-10-23 Vitaly Tishkov <tvv@sparc.spb.su>
+
+ * registryd/deviceeventcontroller.c
+ Fixed compilation error caused by calling gettimeofday()
+ with 1 parameter
+
+2002-10-18 Bill Haneman <bill.haneman@sun.com>
+
+ BUGFIX for #95828.
+
+ * acconfig.h:
+ Added template for HAVE_XKB.
+
+ * configure.in:
+ Changes to check for XKB, and to set the HAVE_XKB #define if it
+ is available.
+
+ * libspi/listener.c:
+ ()impl_notify_event): Make failure to get event source name
+ nonfatal.
+
+ * registryd/deviceeventcontroller.c:
+ (#include): include X11/XKBlib.h.
+ (DEControllerPrivateData) : New struct.
+ (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) :
+ New methods.
+ (dec_synth_keycode_press) (dec_synth_keycode_release):
+ New methods; split the key synthesis code into these methods.
+ They check XKB settings before determining the "time" values to
+ pass to Xtest; this fixes bug #95828.
+ (impl_generate_keyboard_event): Changed to use methods above,
+ instead of callng Xtest directly.
+ (spi_device_event_controller_init): Initialize new privae struct s
+ above.
+ (spi_device_event_controllr_object_finalize):
+ Free the (new) private data.
+
+ * registryd/deviceeventcontroller.h:
+ Add new gpointer to end of struct data.
+
+2002-10-16 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Incremented revision to 1.1.2, SONAME is still '.so', library
+ extensions are ".so.0.0.2".
+
+ * registryd/deviceeventcontroller.c:
+ FIXES FOR #93592 and #95940.
+ (statics): renamed mouse_button_state to mouse_mask_state,
+ added key_modifier_mask.
+ (spi_dec_poll_mouse_moved):
+ Added key modifier checks, and emit "keyboard:modifiers"
+ events when the key modifiers currently in use change.
+ Also generate "mouse:abs" events periodically, even if the mouse
+ is stationary (should we?).
+ Alternatively we could generate "mouse:abs" events for either all
+ mouse movements, or every 'nth' mouse movement, or at the
+ beginning and end of every "active" mouse period.
+
+ * test/event-listener-test.c:
+ (main): Added listener for "keyboard:modifiers" events.
+
+2002-10-15 Bill Haneman <bill.haneman@sun.com>
+
+ * libspi/keymasks.h:
+ Added key mask #defines for mouse buttons; e.g.
+ SPI_KEYMASK_BUTTON1, etc.
+
+ * configure.in:
+ Incremented dependency on ATK to version 1.1.0. (This dependency
+ is probably premature but will soon be real enough).
+
+2002-10-11 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * libspi/hyperlink.[ch]
+ (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
+ (get_hyperlink_from_servant): Check object is AtkHyperlink not
+ AtkObject.
+
+ * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
+ AtkObject.
+
+ Fixes bug #95517.
+
+2002-10-10 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * registryd/deviceeventcontroller.c
+ (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
+ events to be ignored.
+ (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
+ keyboard_mode so that XAllowEvents() can be called.
+
+ Fixes bug #93658.
+
+2002-10-08 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * cspi/spi-accessible.c: Correct names of roles returned by
+ AccessibleRole_getName(). Fixes bug #95055.
+
+2002-10-03 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * cspi/spi_main.c (report_leaked_ref): Report address of leaked
+ object.
+
+ * registryd/registry.c
+ (desktop_remove_application: Write diagnostic message to stderr for
+ consistency.
+
+ (impl_accessibility_registry_deregister_global_event_listener):
+ Correct size of lists array. This addresses bug #94555).
+
+2002-09-24 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
+ in some role names.
+
+2002-09-19 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * registryd/Makefile: Add CLEANFILES so that .server file is removed
+ on make clean
+
+ * registryd/registry.c (impl_registry_notify_event): Remove
+ unnecessary call to parser_event_type().
+
+ * docs/reference/cspi/tmpl/spi_component.sgml:
+ Add reference to SPI_LAYER_WINDOW.
+
+2002-09-17 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * registryd/registry.c
+ (desktop_add_application): Remove leak.
+ (desktop_remove_application): Remove leak.
+ (parser_event_type): Remove leak.
+
+2002-09-16 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
+ bogus call to CORBA_string_dup(). Also removed unnecessary
+ g_string_dup/g_free calls.
+
+2002-09-13 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
+
+ * test/event-listener-test.c:
+ main: commented out three redundant listeners, to reduce output
+ noise. (They still are potentially useful for testing).
+
+
+2002-09-13 Michael Meeks <michael@ximian.com>
+
+ * Update all the copyrights to include Ximian.
+
+2002-09-06 Mark McLoughlin <mark@skynet.ie>
+
+ * cspi/spi.h: add SPI_LAYER_WINDOW.
+
+ * cspi/spi_component.c: (AccessibleComponent_getLayer):
+ add Accessibility_LAYER_WINDOW case.
+
+ * idl/Accessibility_Component.idl: add LAYER_WINDOW.
+
+ * libspi/component.c: (impl_accessibility_component_get_layer):
+ add ATK_LAYER_WINDOW case.
+
+2002-08-28 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in: incremented micro version.
+
+ * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
+
+2002-08-20 Bill Haneman <bill.haneman@sun.com>
+
+ * HACKING:
+ Clarified and reworded our commit policy.
+
+ * NEWS:
+ Started an API "todo" addition list for 2.2.
+
+ * libspi/text.c:
+ (impl_getSelection):
+ Free char pointer from atk_text_get_selection, which was being leaked.
+
+2002-08-19 Bill Haneman <bill.haneman@sun.com>
+
+ * AUTHORS:
+ Small revision to author acknowledgement.
+
+2002-08-19 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
+ If signal has detail add it to the type of the event.
+ (bug #90838)
+
+2002-08-12 Michael Meeks <michael@ximian.com>
+
+ * test/test-simple.c (global_listener_cb): bin bogosity.
+ (test_keylisteners): disable, still doesn't work reliably,
+ certainly not on my system anyway.
+
+ * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
+ don't leak a reference on the DEC. This round-trip
+ fetching of the DEC per keystroke sucks, it should be
+ cached.
+
+ * cspi/spi-private.h,
+ * cspi/cspi-lowlevel.h,
+ * cspi/bonobo/cspi-bonobo-listener.[ch],
+ * cspi/bonobo/cspi-bonobo.c: get the copyright
+ notices better - there is still a large amount of
+ work in at-spi falsely attributed solely to Sun.
+
+ * cspi/spi_main.c (cspi_object_ref): kill bogus
+ hash lookup, just increment the ref.
+ (SPI_freeString): make explicit the fact that we
+ handle NULL strings just fine.
+ (report_leaked_ref): obey coding standards.
+ (cspi_object_hash, cspi_object_equal): kill retval.
+ (cspi_object_release): only release if not on loan.
+ (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
+ (cspi_object_borrow, cspi_object_return): impl.
+
+ * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
+ use cspi_object_borrow / return.
+
+2002-08-12 Darren Kenny <darren.kenny@sun.com>
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (cspi_event):
+ Don't call cspi_oject_new() because this is creating a new Accessible
+ every single time that an event is fired. This causes ATs like at-poke
+ to nolonger recognise the source of the event and thus ignore it.
+ Re-use the object from the cache, ref it and then unref it after the
+ listeners have been called.
+
+2002-08-06 Darren Kenny <darren.kenny@sun.com>
+
+ * test/event-listener-test.c:
+ Added command-line options to disable mouse events (m) and
+ show usage (h).
+
+2002-07-31 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * configure.in: Update required versions of ATK, GTK+ and GAIL
+
+ * cspi-1.0.pc.in: Add dependency for X include files
+
+ * cspi/Makefile.am:
+ * cspi/bonobo/Makefile.am:
+ Add $(X_CFLAGS) so that X include files
+ are picked up even if not in standard place (bug #71686)
+
+2002-06-25 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c: fix for 84261
+ (spi_dec_mouse_moved):
+ Added test of mouse button mask, so that we can detect mouse
+ button release. Unfortunately we can't otherwise detect mouse
+ button release events without consuming the mouse press event,
+ because of the way XGrabButton works. This means that our mouse
+ release events have a latency dependent on the polling period
+ while the mouse button is down. At least in this case we only
+ have to poll while the button is down, and not at other times.
+ If the button masks don't match with what the last press event
+ reported, we report the appropriate button release event.
+ (spi_dec_ungrab_mouse):
+ New method (not yet called).
+ (spi_device_event_controller_forward_mouse_event):
+ New method, sends mouse press event from GdkFilter.
+ (spi_dec_init_mouse_listener):
+ Added code to call XGrabButton, redirecting mouse button events to
+ the root window and our Gdk event loop.
+ (global_filter_fn):
+ Added code to filter mouse button events, and reordered.
+
+ * test/event-listener-test.c:
+ (main):
+ Added registration for mouse events of type "mouse:button".
+
+2002-06-25 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c: partial fix for 84261
+ (spi_dec_poll_mouse_idle):
+ New method, a timeout which checks to see if the mouse
+ has moved.
+ (spi_dec_poll_mouse_moving):
+ A timeout to be called when mouse motion is underway.
+ (spi_dec_poll_mouse_moved):
+ A method which fires an event if the mouse has moved, and reports
+ whether or not it did so.
+ (spi_dec_init_mouse_listener):
+ A method which sets up the timeouts above.
+ (spi_device_event_controller_new):
+ Now calls spi_dec_init_mouse_listener.
+
+ * registryd/registry.c:
+ (spi_registry_init):
+ Now we initialize the device event controller when the registry is
+ initialized, instead of waiting until a client has requested a key
+ event notification; this is because we need the event controller
+ for mouse events, but the mouse event registration API is a
+ "registry" call and doesn't explicitly call the
+ deviceeventcontroller.
+ We now report mouse motion events with a 100 ms idle latency and
+ a 20 ms granularity when motion is in progress.
+
+ * test/event-listener-test.c:
+ (main):
+ We now register the "detail listener" for events of type
+ "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
+ delivered only for the first mouse event received, and thereafter
+ "mouse:abs" events are delivered.)
+
+ * cspi/spi_registry.c:
+ DOCS: Documented the above mouse event typestrings.
+
+2002-06-21 Bill Haneman <bill.haneman@sun.com>
+
+ Happy Summer Solstice...
+
+ * registryd/deviceeventcontroller.c: [fix for bug 84100]
+ (spi_controller_notify_keylisteners):
+ Changes to remove a listener from the listener list, freeing its
+ open keygrabs, if a notification to that listener fails. This
+ means that although a dead listener can continue to hold a passive
+ keygrab, a maximum of one dispatch to such a listener can fail
+ before the listener is removed from the list, thus the keygrab
+ will be released on the next occurrence.
+ As part of this fix:
+ (spi_notify_keylisteners):
+ Renamed to spi_controller_notify_keylisteners, as the controller
+ instance must now be passed as an argument.
+ The copied 'notify' GList is now a list of DEControllerKeyListener
+ objects, since we need more than just the CORBA reference if a
+ notify fails and we need to deregister the listener.
+ (impl_notify_listeners_sync):
+ (impl_notify_listeners_async):
+ (spi_device_event_controller_forward_key_event):
+ Modify use of notify_keylisteners in accordance with above
+ changes.
+ (spi_deregister_controller_key_listener):
+ New method introduced by refactoring, from
+ impl_deregister_keystroke_listener.
+ (impl_deregister_keystroke_listener):
+ Call spi_deregister_controller_key_listener.
+ (spi_key_listener_clone):
+ New method to copy a key listner without doing a 'ref' on the
+ remote object instance; used to create a notifier list.
+ (spi_key_listener_data_free):
+ New method, frees data without unreffing the source.
+ Used in refactor.
+ (spi_key_listener_clone_free): new method.
+ (spi_key_listener_free):
+ refactored to call spi_key_listener_data_free.
+
+2002-06-20 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/registry.c: [fix for bug 86048]
+ (notify_listeners_cb):
+ Clear CORBA system exceptions which occur when notifying
+ listeners, before returning to the source of the original event,
+ since the event source doesn't care if the relayed notify failed.
+ In other words, don't complain to the atk-bridge if the registry
+ could not notify all its listeners, that's no fault of the
+ application and thus should not appear to be an error from the
+ application's perspective.
+
+ * cspi/spi_main.c: [fix for bug 85980]
+ (cspi_object_ref):
+ Replaced use of bonobo_object_dup_ref with call to the wrapper
+ method, csou_dup_ref (); this silences a compiler warning and
+ provided more portability.
+ (cspi_registry):
+ Ping the registry before return, and restart if necessary.
+
+ * cspi/bonobo/cspi-bonobo.c:
+ (cspi_ping):
+ New internal method.
+ (cspi_dup_ref):
+ Fixed this method to return an object reference, as it should have
+ all along.
+
+ * cspi/cspi-lowlevel.h:
+ Added internal definition for cspi_ping() and fixed
+ return type of cspi_dup_ref().
+
+
+2002-06-19 Bill Haneman <bill.haneman@sun.com>
+
+ * atk-bridge/bridge.c: [fix for bug 85305]
+ (spi_atk_bridge_register_application):
+ New method where the initial application registry calls have been
+ moved; it allows an application to re-register in response to
+ certain error conditions (such as a registry restart, see below).
+ (atk_bridge_init):
+ Moved some initialization code to the method
+ spi_atk_bridge_get_registry, below.
+ (spi_atk_bridge_get_registry):
+ New, private accessor function for the Accessibility_Registry
+ instance. If the registry has not been started before, or has
+ died (as detected by failure of a CORBA exception), it is
+ restarted before return, and spi_atk_bridge_register_application
+ is called again to register with the new bridge instance.
+ (spi_atk_emit_eventv):
+ Set registry_died on error; use spi_atk_bridge_get_registry () to
+ access the registry.
+
+ * registryd/registry.c:
+ (impl_accessibility_registry_register_global_event_listener):
+ Set listener's event_type_quark to etype.minor instead of
+ etype.major (fix for bug 84856).
+
+ * test/event-listener-test.c:
+ (report_detail_event):
+ Change the output string so that user/tester can tell that the
+ 'detail listener' was called instead of the 'generic listener'.
+
+2002-06-18 Bill Haneman <bill.haneman@sun.com>
+
+ Fixes for bugs 84900, 84908, 84897, 84898.
+
+ * NEWS: updated.
+
+ * configure.in:
+ Revved version to 1.1.0
+ (reserving the 1.0.X branch for gnome-2-0-0 branch, this
+ version is going to HEAD which will be used for gnome-2-0-1 and later.)
+
+ * idl/Accessibility_Registry.idl:
+ (EventListener::notifyEvent):
+ Removed 'oneway' directive after extensive consulation with
+ ORBit2 team and others. This means also that unref() of the event
+ source can and should be done synchronously after emission, rather
+ than remotely in the client, after servicing the notify call on
+ the listener side.
+
+ NOTE: This change speeds up listener performance considerably, but
+ introduces new latency on the application side. We may want to
+ add an event queue to the atk-bridge.
+
+ * atk-bridge/bridge.c:
+ (spi_atk_bridge_focus_tracker):
+ Do a local unref() on the event source after emission.
+
+ * registryd/registry.c:
+ (desktop_remove_application):
+ Do an unref() on the event source after emission.
+ (desktop_add_application):
+ Do an unref() on the event source after emission.
+ (notify_listeners_cb):
+ When relaying an event, don't automatically add the event source
+ to the local object cache, just CORBA_dup it instead. Likewise,
+ if this method reenters, release the ref rather than calling
+ unref() as well.
+ (impl_registry_notify_event):
+ No longer call remote unref() on the event source after dispatch.
+
+ * libspi/eventlistener.c:
+ (impl_accessible_event_notify_event):
+ Removed remote unref ()
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (cspi_event):
+ We now call cspi_object_new() instead of cspi_object_add() on
+ receipt of an event; thus we only have an implicit object ref
+ while the cspi_event method is being executed. If we need to keep
+ a reference to the object, the listener must call ref() on the
+ object. Thus also we don't need to call cspi_object_unref() after
+ invoking the listener callbacks in this method.
+
+ * cspi/spi_main.c:
+ (cspi_object_new):
+ New internal API for creating a new cspi object, without adding it
+ to the object cache.
+ (cspi_object_add):
+ Now uses cspi_object_new() to create the cspi object instance.
+ (cspi_object_ref):
+ Now checks to see if the object is in the internal object cache,
+ and adds it if necessary before incrementing its refcount (note
+ that new objects are added with a refcount of 1).
+ (report_leaked_ref):
+ New method which gives some information on leaked object instances
+ if leak detection is turned on.
+
+ * test/event-listener-test.c:
+ (timing_test_event):
+ New method, used for testing event delivery timing for special
+ events of type "object:test". It reports elapsed time and
+ events/sec every 500 events.
+ (main):
+ Added a new listener, 'test listener', to check timing of event
+ receipt as noted above.
+ (report_event):
+ Added some timing output here also, reports elapsed time every 100
+ events.
+
+ * test/stress-test.c:
+ Emit events of type "object:test", for use with "event-listener-test".
+
+ * test/test-simple.c:
+ (global_listener_cb):
+ Call Accessible_ref() on the event source before calling
+ validate_accessible, since the validation process does pointer
+ comparisons on the event source, meaning that the event source
+ needs to be added to the local object cache first. Any use of
+ such pointer comparisons between Accessible objects requires that
+ the caller hold an explicit reference to those objects.
+ We also must therefore call Accessible_unref() when leaving this method.
+
+2002-06-13 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ (spi_controller_update_key_grabs):
+ Fix for #84735, subsequent keygrab listeners not informed of
+ registration failure.
+
+ * libspi/base.c:
+ (spi_base_construct):
+ Add an assertion on construct, to make sure the GObject passed in
+ is really a GObject.
+ (spi_base_init):
+ Explicitly initialize object->gobj pointer to NULL;
+
+ * cspi/bonobo/cspi-bonobo-listener.c:
+ (cspi_object_add_ref):
+ New method, can specify whether to dup-ref a bonobo object passed
+ in if it's newly added to the object cache.
+ (cspi_object_add):
+ Now calls cspi_object_add_ref with second param of "FALSE". This
+ prevents us from doing a pointless dup-ref followed by
+ release-unref for all those cases where the object is already in
+ our object cache (fix for #85205).
+
+ * atk-bridge/bridge.c:
+ (spi_atk_bridge_idle_init):
+ Removed this method, we don't need to initialize in an idle
+ handler anymore;
+ (atk_bridge_init):
+ Changed to call spi_atk_register_event_listeners directly, not via an
+ idle handler. (fix for #81139)
+ (gnome_accessibility_module_shutdown):
+ Removed conditional around deregistration of listeners, since we
+ don't use the idle handler and thus have always registered when
+ shutdown is called.
+ (spi_init_keystroke_from_atk_key_event):
+ Changed references to Accessibility_KEY_PRESSED to
+ Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
+
+2002-06-12 Bill Haneman <bill.haneman@sun.com>
+
+ (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
+
+ * configure.in:
+ Revved to 1.0.1
+
+ * test/stress-test.c:
+ Added file.
+
+ (may have been an incomplete commit yesterday?)
+
+2002-06-12 Bill Haneman <bill.haneman@sun.com>
+
+ * test/Makefile.am:
+ Added target for new stress-test.
+
+ * test/stress-test.c:
+ New test, sends 1000 focus notifies in quick succession.
+
+ * test/key-listener-test.c:
+ Now we report whether a keylistener registration
+ request succeeded or failed.
+
+ * test/event-listener-test.c:
+ Uncommented some listeners which are now implemented.
+
+
+2002-06-06 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ (spi_controller_update_key_grabs):
+ Fix for #82509, lack of failure notification when
+ ALL_WINDOWS keygrabs fail due to XGrabKey
+ failure: we synchronize the server when
+ registering a passive grab, to make sure we get the
+ error message before the call returns.
+
+2002-06-03 Bill Haneman <bill.haneman@sun.com>
+
+ * test/test-simple.c:
+ (key_listener_cb):
+ Removed #ifdef KEY_IMPL_WORKS guards.
+ (test_keylisteners):
+ Removed #ifdef KEY_IMPL_WORKS guards.
+ Fixed bug which was causing a hang waiting for a
+ "press" event (which was already overwritten by a "release"
+ event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
+ (key_listener_cb):
+ Added code to set globals 'key_press_received' and
+ 'key_release_received'.
+
+ * TODO:
+ Added section "1.1 API Proposed Additions" which
+ lists API additions desired for at-spi-1.1 (only one so far).
+ Updated TODO list a little.
+
+2002-06-02 Bill Haneman <bill.haneman@sun.com>
+
+ AT-SPI 1.0 API FINAL: at-spi 1.0 is now
+ API frozen.
+
+ * configure.in: Revved to 1.0.0.
+
+ * idl/Accessibility_Registry.idl:
+ (registerKeystrokeListener):
+ Added boolean return value.
+
+ * registryd/registry.c:
+ (notify_listeners_cb): Minor fix to debug output.
+
+ * registryd/Accessibility_Registry.server.in.in:
+ Revved version number in OAFIID to 1.0.
+
+ * registryd/registryd.c:
+ (main):
+ Use new OAFIID version.
+
+ * cspi/bonobo/cspi-bonobo.c:
+ (cspi_init):
+ Use new OAFIID version.
+
+ * test/at.c:
+ (main):
+ * test/app.c:
+ (main):
+ * atk-bridge/bridge.c:
+ (atk_bridge_init):
+ Use new OAFIID version.
+
+ * registryd/deviceeventcontroller.c:
+ (impl_register_keystroke_listener):
+ Added CORBA_boolean return value.
+ (spi_controller_register_device_listener):
+ Added gboolean return value.
+ (spi_controller_register_global_keygrabs):
+ Added gboolean return value.
+ (spi_key_set_contains_key):
+ Added implementation for many more control keys,
+ for instance F1-F12, arrow keys, End, Home, Page_Up,
+ Page_Down, Escape.
+ [TODO: some still not implemented].
+
+ * text/screen-review-test.c:
+ (text_chunk_pad_string):
+ New function: it provides mapping between coordinate
+ positions of text chunks and character positions in the
+ screen-review-line output string.
+ (text_chunk_to_string):
+ New function, calls text_chunk_pad_string with various
+ pad/delimiter characters. Pushbuttons are delimited with
+ square brackets, Frames with vertical 'pipe' lines, and
+ other text with double quotes.
+ (text_chunk_list_to_string):
+ Calls new function text_chunk_to_string.
+ (toplevel_composite):
+ New function to composite layers CANVAS through
+ POPUP in each toplevel (other layers are composited
+ across toplevels, i.e. BACKGROUND and OVERLAY).
+ (review_buffer_composite):
+ Revise to use new methods.
+
+
+
+
+
+2002-05-31 Laszlo Peter <laca@sun.com>
+
+ * configure.in: add the Xtst libdir to the runpath on Solaris,
+ since it's not in the default library search path.
+
+2002-05-29 jacob berkman <jacob@ximian.com>
+
+ * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
+
+2002-05-29 Bill Haneman <bill.haneman@sun.com>
+
+ * test/screen-review-test.c:
+ (text_chunk_pad_string):
+ Added method, which pads the string according to the
+ text bounds of the chunk. It also takes a 3-character
+ string as a param which indicates the characters to be
+ used for start, padding, and end delimitation of the chunk.
+ (text_chunk_to_string):
+ Changed to use text_chunk_pad_string.
+
+ * configure.in: Fixed bug in AC_OUTPUT that was
+ causing path substitution in Accessibility_Registry.server
+ to fail.
+
+2002-05-23 Bill Haneman <bill.haneman@sun.com>
+
+ * text/screen-review-test.c:
+ (guess_string_clip):
+ New method which attempts a best-guess at clipping
+ text from components (like Java labels) which don't
+ actually implement AccessibleText. This inaccurate
+ clip is based on the assumption that the label is
+ justified left-and-right, and monospaced.
+ (text_chunk_get_clipped_string):
+ We now call guess_string_clip() for text-containing
+ components that don't implement AccessibleText.
+
+ * test/screen-review-test.c:
+ (review_buffer_get_text_chunk):
+ We now pull "name" from labels if they do not implement
+ AccessibleText (i.e. for Java labels).
+ (get_screen_review_line_at):
+ Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
+
+ * configure.in:
+ Replaceded AC_OUTPUT target
+ registryd/Accessibility_Registry.server with
+ registryd/Accessibility_Registry.server.in.
+
+ * registryd/Accessibility_Registry.server.in:
+ Removed (this is now a Makefile target).
+
+ * registryd/Accessibility_Registry.server.in.in:
+ Added (source for target above). We now use $(libexecdir) as
+ prefix for the executable at-spi-registryd.
+
+ * registry/Makefile.am:
+ Now install at-spi-registryd into $(libexecdir), and build .server
+ file with path (see above).
+
+2002-05-22 Bill Haneman <bill.haneman@sun.com>
+
+ * test/screen-review-test.c:
+ (text_chunk_get_clipped_string):
+ We now check to see if words fall within clip bounds
+ before resorting to character-by-character clip bounds testing.
+
+ * TODO: Added a section for "2.2 Proposed API Additions".
+
+2002-05-21 Bill Haneman <bill.haneman@sun.com>
+
+ * test/screen-review-test.c:
+ * test/Makefile.am:
+ Added a screen review benchmarking and test program to test
+ directory.
+
+ * cspi/spi_accessible.c:
+ * cspi/spi_main.c:
+ Made some of the debug strings passed to cspi_check_ev a
+ little more specific.
+
+2002-05-21 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * test/screen-review-test.c: Fix crashes in debug statements
+
+2002-05-20 Bill Haneman <bill.haneman@sun.com>
+
+ * test/screen-review-test.c: Added this file.
+
+2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * atk-bridge/bridge.c: changed "object:state-change" to
+ "object:state-changed" to match docs.
+
+2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * atk-bridge/bridge.c: Hooked up state-change event details.
+
+2002-05-11 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/registry.c:
+ Fixed quarking bug in event string parsing; now events with
+ detail parameters get matched correctly to listeners.
+ [Bugzilla 80608].
+
+ * util/idl/Magnifier.idl: remove.
+ * util/idl: remove
+ * util/*.[ch]: Remove.
+ Magnification utilities and IDL are now in module gnome-mag.
+
+2002-05-10 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/deviceeventcontroller.c:
+ Fixed bug in grab key conversion which was causing keycode grabs
+ to be converted to AnyKey grabs.
+
+ * NEWS:
+ updated NEWS file to reflect recent spin-off of gnome-mag.
+
+2002-05-09 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * cspi/spi_accessible.c: Added exception checks. Fixed completely
+ busted AccessibleStateSet_compare. Removed redundant casts.
+
+ * cspi/spi-action.c: Removed redundant casts.
+
+ * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
+
+ * cspi/spi_component.c: Fixed typos and casting error.
+
+ * cspi/spi_editabletext.c: Removed redundant casts.
+
+ * cspi/spi_hyperlink.c: Fixed casting and exception checking.
+
+ * cspi/spi_hypertext.c: Eliminated redundant casts.
+
+ * cspi/spi_image.c: Eliminated redundant casts.
+
+ * cspi/spi_registry.c: Eliminated redundant casts.
+ SPI_deregisterGlobalEventListenerAll () removed retval variable.
+ * cspi/spi_selection.c: Removed redundant casts.
+ * cspi/spi_text.c: Eliminated redundant casts. Fixed exception
+ handling. Screen geometry and text offsets were being returned as 0
+ on error which is technically valid-- changed these to return -1.
+ Added marshaller for text boundary types to fix bug with boundary
+ types being passed incorrectly to atk.
+
+2002-05-09 Bill Haneman <bill.haneman@sun.com>
+
+
+ * cspi/spi_registry.c:
+ Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
+ which was uncovered by the recent key changes.
+
+2002-05-09 Bill Haneman <bill.haneman@sun.com>
+
+ * test/event-listener-test.c:
+ * test/Makefile.am:
+ Added new test, "event-listener-test";
+ this code does two things; it benchmarks traversal time
+ for the accessible hierarchy for the first running accessible
+ app, and it connects listeners for all supported event types.
+ It is thus useful as an example event listener and for
+ diagnostics/debugging of event generation.
+
+2002-05-08 Bill Haneman <bill.haneman@sun.com>
+
+ * test/Makefile.am:
+ Removed unnecessary dependency on libutil.
+
+ * configure.in:
+ Revved micro version: 0.13.1
+
+2002-05-08 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Removed util/Makefile from targets.
+
+ * Makefile.am:
+ Removed util subdir from SUBDIRS (temporarily,
+ pending removal of magnifier-only code
+ from UTIL).
+
+ * test/simple-at.c:
+ #ifdef-ed out magnifier dependencies, since
+ magnifier IDL, headers, and binary now live in
+ module gnome-mag and we don't want at-spi to depend
+ on gnome-mag. A magnifier demo which can run alongside
+ simple-at is forthcoming in the gnome-mag module.
+
+ NOTE: Split magnifier binary, IDL, and magnification
+ activation code from at-spi into module gnome-mag.
+
+2002-05-03 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
+ cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
+
+2002-05-03 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Revved to version 0.13.0
+
+ * idl/Accessibility_Registry.idl:
+ Changed definition of KeySet from sequence of longs to sequence of
+ KeyDefinitions, and added KeyDefinition struct.
+ Required for fix to bug 80616.
+
+ * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
+ Changed AccessibleKeySet to Accessibility_KeySet marshalling code
+ to use new definition (see above).
+
+ * registryd/deviceeventcontroller.c: handle_keygrab(),
+ spi_keyset_contains_key():
+ Changed to make use of new struct; this allows matching based on
+ string key-name, for instance "Tab". This also allows matching of
+ composed characters, non-alphanumeric characters in a way that
+ doesn't involve dependencies on X keysym codes directly, etc.
+
+ * test/key-listener-test.c:
+ Added test for Alt-Tab key using "string" specification of keyset,
+ and modified one of the tests to use a keycode-based keyset.
+ Thus this test both tests and demonstrates the creation and use of
+ keysets of three forms: specified via keycode array,
+ keysym array, and string array. (The string case only contains a
+ single string, i.e. a string array of length 1).
+
+ * test/simple-at.c:
+ Turned on PRINT_TREE option by default. Also fixed a
+ string-freeing bug in the PRINT_TREE code.
+ Added a listener to window:minimize events.
+
+2002-05-08 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * atk-bridge/bridge.c:
+ (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
+ for window:activate and window:deactiveate
+ (atk_bridge_property_event_listener atk_bridge_signal_listener
+ atk_bridge_window_event_listener) Tidy debug code
+
+2002-05-02 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
+ Fixed handling for NULL return value from ATK.
+
+ * libspi/action.c libspi/component.c libspi/editabletext.
+ libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
+ libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
+ Removed redundant casts.
+
+ * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
+ Fixed off by one bug.
+
+ *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
+ function not present in idl)
+
+2002-05-02 jacob berkman <jacob@ximian.com>
+
+ * atk-bridge/Makefile.am: make atk-bridge a real module
+
+2002-04-26 Radek Doulik <rodo@ximian.com>
+
+ * libspi/stateset.c (spi_init_state_type_tables): fix size of
+ atk_state_types table
+
+2002-04-22 jacob berkman <jacob@ximian.com>
+
+ * util/Makefile.am:
+ * libspi/Makefile.am: add deps on the built files to help
+ automake, and don't version the ORBit typelib
+
+2002-04-19 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
+ cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.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_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
+ cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
+ cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
+ libspi/accessible.h libspi/accessible.h libspi/base.h
+ libspi/component.h libspi/editabletext.h libspi/hyperlink.h
+ libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
+ libspi/relation.h libspi/remoteobject.h libspi/selection.h
+ libspi/spi-private.h libspi/statetset.h libspi/table.h
+ libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
+ util/mag_client.h util/mag_control.c util/mag_image.c
+ util/mag_image.h util/magnifier.c util/magnifier.h:
+ Add missing file headers; standardize existing ones
+
+2002-04-18 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * atk-bridge/bridge.c: Added window event support.
+
+2002-04-18 Michael Meeks <michael@ximian.com>
+
+ * libspi/relation.c (impl_getNTargets): impl.
+ (impl_getTarget): impl.
+
+ * libspi/Makefile.am: fix stateset install.
+
+2002-04-17 Bill Haneman <bill.haneman@sun.com>
+
+ * NEWS:
+ Started putting useful info in this file.
+
+2002-04-17 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * atk-bridge/bridge.c:
+ Propagate state-changed notifications to ATs
+
+ * cspi/spi_registry.c: update docs to reflect actual behavior of
+ state-change events.
+
+2002-04-17 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Incremented version to 0.12.1
+
+ * util/mag_client.h:
+ Add missing declaration for magnifier_exit,
+ used by mag_control.c - Forte compiler didn't like
+ the implicit redeclaration of the function :-(
+
+
+2002-04-16 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Revved version to 0.12 due to API change (see below).
+
+ * cspi/spi-roletypes.h:
+ removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE
+ definition from the inline docs, and added docs
+ for SPI_ROLE_LAST_DEFINED.
+
+ * cspi/spi.h:
+ * cspi/spi_streamablecontent.c:
+ Added missing seek_type parameter to
+ (so far unused) method,
+ AccessibleStreamableContent_seek().
+ [ RT approval JodyG. ]
+
+ * cspi/spi_event.c:
+ Fixed docs for SPI_createAccessibleKeystrokeListener.
+
+ * cspi/spi_registry.c:
+ Fixed docs for SPI_KEYSET_ALL_KEYS.
+
+ * docs/reference/cspi/at-spi-cspi-sections.txt:
+ Added a number of missing APIs to SECTIONS.
+
+2002-04-16 Bill Haneman <bill.haneman@sun.com>
+
+ * registryd/Makefile.am:
+ * cspi/Makefile.am:
+ * cspi/bonobo/Makefile.am:
+ Add $(X_LIBS) to makefiles.
+
+2002-04-15 Bill Haneman <bill.haneman@sun.com>
+
+ * configure.in:
+ Revved version to 0.11.
+
+ * libspi/component.c:
+ Added implementation for grabFocus.
+
+ * idl/Accessibility_Component.idl
+ (Accessibility_Component_grabFocus):
+ Made this method return boolean to indicate success or failure, to
+ be consistent with cspi and the corresponding ATK method.
+
+ * idl/Accessibility_Selection.idl
+ (Accessibility_Selection_selectAll) :
+ Made these methods return boolean to indicate success or
+ failure, to be consistent with cspi and the corresponding ATK methods.
+
+ * idl/Accessibility_EditableText.idl
+ (Accessibility_EditableText_setTextContents,
+ Accessibility_EditableText_insertText,
+ Accessibility_EditableText_cutText,
+ Accessibility_EditableText_deleteText,
+ Accessibility_EditableText_pasteText):
+ Made these methods return boolean to indicate
+ success or failure.
+
+ * cspi/spi_editabletext.c:
+ Made these methods return booleans.
+
+ * libspi/selection.c:
+ * libspi/component.c:
+ * libspi/editabletext.c:
+ Connected the boolean returns from ATK
+ to the server-side code referenced above.
+
+2002-04-14 Bill Haneman <bill.haneman@sun.com>
+
+ * idl/Accessibility_Table.idl: Added missing methods,
+ Accessibility_Table_addRowSelection,
+ Accessibility_Table_addColumnSelection,
+ Accessibility_Table_removeRowSelection,
+ Accessibility_Table_removeColumnSelection.
+
+ * cspi/spi_table.c:
+ Added C wrappers for above IDL:
+ AccessibleTable_addRowSelection,
+ AccessibleTable_addColumnSelection,
+ AccessibleTable_removeRowSelection,
+ AccessibleTable_removeColumnSelection.
+
+ * libspi/table.c:
+ Added server-side implementation code for IDL above, connecting
+ to pre-existing ATK api.
+
+2002-04-13 Marc Mulcahy <marc.mulcahy@sun.com>
+
+ * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
+
+ * libspi/accessible.c: Added implementation fo
+ Accessibility_Accessible_get_state.
+
+ * libspi/libspi.h: Added stateset.h to the list of includes.
+
+ * libspi/stateset.c: Fixed broken implementation.
+
+2002-04-13 Bill Haneman <bill.haneman@sun.com>
+
+ * util/magnifier.c:
+ Added implementation code for Accessibility_Magnifier_exit ().
+
+ * util/mag_control.c:
+ Added test code for above method; you can
+ now kill an existing magnifier via
+ ./mag_control q, from the util directory.
+
+ * test/key-listener-test.c:
+ * test/Makefile.am:
+ Added a new test, for our key listener API.
+
+2002-04-11 Bill Haneman <bill.haneman@sun.com>
+
+ * test/app.c, test/keysynth-demo.c:
+ * util/magnifier.c:
+ Replace use of snprintf with g_snprintf.
+ (fix for bugzilla 78249)
+
+2002-03-27 Michael Meeks <michael@ximian.com>
+
+ * Version 0.10.0
+
+ * util/Makefile.am (INCLUDES): fix.
+ (DONT_DIST_SOURCE): don't distribute the
+ generated files.
+
+ * libspi/Makefile.am (dist-hook): ditto.
+
+2002-03-27 Padraig O'Briain <padraig.obriain@sun.com>
+
+ * libspi/hypertext.c:
+ Fix warnings when yelp is used with atk-bridge
+
+2002-03-21 Michael Meeks <michael@ximian.com>
+
+ * libspi/application.c (spi_application_new):
+ use spi_accessible_construct so we use the AtkObject
+ cache correctly.
+
+2002-03-19 Michael Meeks <michael@ximian.com>
+
+ * registryd/registry.c (desktop_remove_application),
+ (desktop_add_application): clean coding style.
+
+ * registryd/desktop.c (spi_desktop_remove_application),
+ (spi_desktop_add_application): kill re-enterency hazards.
+ (spi_desktop_dispose): remove bogus redundant cast
+ obscuring bug; fix bug too.
+ (spi_desktop_init): make the desktop object immortal.
+
+2002-03-16 Bill Haneman <bill.haneman@sun.com>
+
+ * test/simple-at.c:
+ Added a #define-guarded tree-traversal step
+ when enumerating the apps (diagnostic tool).
+
+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:
+ 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-11-22 Bill Haneman <bill.haneman@sun.com>
* test/simple-at.c:
Added non-preemptive keylistener for key events with no modifiers
for non-preemptive key masks.
-2001-22-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-22 Bill Haneman <bill.haneman@sun.com>
* docs/reference/idl/at-spi-idl-docs.sgml:
* docs/reference/idl/at-spi-idl-sections.txt:
* docs/idl:
Added .cvsignore files.
-2001-21-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-21 Bill Haneman <bill.haneman@sun.com>
* libspi/deviceeventcontroller.c:
* libspi/keystrokelistener.c:
event dispatching, so listeners should only receive those events
that they requested :-)
-2001-21-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-21 Bill Haneman <bill.haneman@sun.com>
* configure.in:
* docs/Makefile.am:
* libspi/base.[ch]: add.
-2001-18-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-18 Bill Haneman <bill.haneman@sun.com>
* idl/Accessible.idl:
* idl/Application.idl:
Solaris build problem.
-2001-20-11 Michael Meeks <michael@ximian.com>
+2001-11-20 Michael Meeks <michael@ximian.com>
* libspi/registry.c
(impl_accessibility_registry_deregister_global_event_listener):
* 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>
+2001-11-20 Michael Meeks <michael@ximian.com>
* libspi/*.[ch]: further convert to bonobo's type func
macros, remove redundnant casts etc.
* */.cvsignore: update
-2001-20-11 Michael Meeks <michael@ximian.com>
+2001-11-20 Michael Meeks <michael@ximian.com>
* libspi/deviceeventcontroller.c
(_controller_register_with_devices): use g_getenv,
* libspi/*.[ch]: more headers, includes and over commenting.
-2001-20-11 Michael Meeks <michael@ximian.com>
+2001-11-20 Michael Meeks <michael@ximian.com>
* libspi/*.[ch]: fixup headers, includes and over commenting.
* libspi/libspi.h: add.
-2001-19-11 Michael Meeks <michael@ximian.com>
+2001-11-19 Michael Meeks <michael@ximian.com>
* libspi/editabletext.c (impl_setAttributes): fix warnings.
* libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
warning fixes.
-2001-18-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-18 Bill Haneman <bill.haneman@sun.com>
* libspi/spi_accessible.c: Added docs and C bindings for
AccessibleStateSet. (No implementations yet). Documentation
object:column-deleted
object:model-changed
-2001-16-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-16 Bill Haneman <bill.haneman@sun.com>
* libspi/hyperlink.c,h:
Fixed some broken stuff in hyperlink.
Doc coverage now 95%.
-2001-16-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-16 Bill Haneman <bill.haneman@sun.com>
One last namespacing revision:
* libspi/accessibleeventlistener.[ch]:
AccessibleTable
AccessibleHyperlink
-2001-14-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-14 Bill Haneman <bill.haneman@sun.com>
* at-bridge/bridge.c:
Initial work for toolkit-level key snooper connection by bridge.
libraries. (Incompletely tested for technical reasons, fixes may follow)
-2001-13-11 Michael Meeks <michael@ximian.com>
+2001-11-13 Michael Meeks <michael@ximian.com>
* libspi/application.c
(impl_accessibility_application_get_version),
(impl_accessibility_accessible_get_relation_set):
warning fixes & include action.h
-2001-13-11 Michael Meeks <michael@ximian.com>
+2001-11-13 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>
+2001-11-13 Michael Meeks <michael@ximian.com>
* *.[ch] Namespace libspi into spi_ and Spi.
* configure.in: build it.
-2001-12-11 Bill Haneman <bill.haneman@sun.com>
+2001-11-12 Bill Haneman <bill.haneman@sun.com>
* test/keysynth-demo.c:
Use a 'realize' signal-handler to set the WM properties for
* libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
-<2001-10-26 Laszlo Peter <laca@ireland.sun.com>
+2001-10-26 Laszlo Peter <laca@ireland.sun.com>
* at-bridge/Makefile.am: fix LDFLAGS.
-<2001-10-09 Bill Haneman <bill.haneman@sun.com>
+2001-10-09 Bill Haneman <bill.haneman@sun.com>
* at-bridge/bridge.c:
Re-worked listeners for toolkit events, now we have signal
bonobo_object_corba_objref (bonobo_object(o)) to
BONOBO_OBJREF(o), for concision and clarity.
-<2001-10-13 Louise Miller <louise.miller@sun.com>
+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
+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>
+2001-10-09 Bill Haneman <bill.haneman@sun.com>
* idl/Accessible.idl:
Added 'isEqual (Accessible *object)'
CORBA_unsigned_long, to allow for 32-bit characters.
-<2001-10-08 Bill Haneman <bill.haneman@sun.com>
+2001-10-08 Bill Haneman <bill.haneman@sun.com>
* util/Makefile.am:
* idl/Makefile.am:
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>
+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>
+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>
+2001-09-30 Bill Haneman <bill.haneman@sun.com>
* libspi/keystrokelistener.h:
* libspi/keystrokelistener.c:
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>
+2001-09-27 Bill Haneman <bill.haneman@sun.com>
* util:
* util/Makefile.am:
If env variable MAGNIFIER is set, a magnifier service
will be started if one does not exist.
-<2001-09-25 Bill Haneman <bill.haneman@sun.com>
+2001-09-25 Bill Haneman <bill.haneman@sun.com>
+
* at-bridge/bridge.c:
applied patch from Marc to build and run
against new glib and gtk+ (seemed like a change
Changed "application.h" header from a 'source'
to a 'dependency' of libat-bridge.
-<2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
+2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
+
* cspi/Makefile.am:
Added spi-util.c.
* libspi/hyperlink.c:
Change for nAnchors attributte name change.
-<2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
+2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
* cspi/Makefile.am:
Added spi-util.c.
Change for nAnchors attributte name change.
-<2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
+2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
implementations-- made server implementations own AtkObject pointers
rather than their respective AtkInterrface pointers to fix
refcounting. AtkHyperlink is still broken.
-<2001-09-04 Bill Haneman <bill.haneman@sun.com>
+2001-09-04 Bill Haneman <bill.haneman@sun.com>
* cspi/spi_accessible.c:
Added method Accessible_Role_getName(),
and requisite string array (role_names).
Changed bonobo_object_release_unref to
Accessibility_Accessible_unref.
-<2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
+2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
* Added files:
spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
Implementations for C bindings to remaining accessibility
interfaces.
-<2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
+2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
* idl/Action.idl:
changed return value of Action from void to boolean to
2001-08-21 Bill Haneman <bill.haneman@sun.com>
Tagged CVS repository 'EA_1_0'.
- * README.EARLY_ACCESS:
+ * README.EARLY_ACCESS:
Alphabetized acknowledgements list, and
added someone.
Listed some known dependencies of at-spi.
Accessible_getName() - uppercase object type name, studlyCaps method
name.
- *cspi/spi.h:
+ * cspi/spi.h:
Added gtk-doc documentation for all currently implemented
methods in the C bindings API.
2001-07-31 Bill Haneman <bill.haneman@sun.com>
- * libspi/accessible.c : added support for 'description' property.
+ * libspi/accessible.c : added support for 'description' property.
* libspi/accessible.c
* libspi/desktop.c
* libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
2001-07-28 Anders Carlsson <andersca@gnome.org>
- * libspi/accessible.c (accessible_object_finalize): Change
+ * libspi/accessible.c (accessible_object_finalize): Change
g_free to g_object_unref since the AtkObject is a GObject.
2001-07-30 Bill Haneman <bill.haneman@sun.com>