+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: