*** empty log message ***
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
index 9725c93..dd16439 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,588 @@
+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:
        * idl/Accessibility_Accessible.idl:
        Added four empty slots to Accessible interface.
 
-       * idl/Accessibility_Accessible.idl:
-       Added four empty slots to Accessible interface.
-
 2002-11-15  Bill Haneman <bill.haneman@sun.com>
 
        * idl/Accessibility_Registry.idl: