Bugfix for keygrab regression (registryd was holding keygrabs after they should have...
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
index 0a451e1..4d7b532 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,291 @@
-2002-01-01  Bill Haneman <bill.haneman@sun.com>
+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: