+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