Fixes for 98836, 98842, added slots to IDL for ABI freeze.
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
index d119cff..ea0d226 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,512 @@
+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