Added docs for SPI_freeString, and used it to stop memory leak of strings
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
index 032a7db..8f61c06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,450 @@
+2001-11-28  Bill Haneman  <bill.haneman@sun.com>
+
+       * docs/reference/cspi:
+       Included docs for SPI_freeString in generated documentation.
+
+       * cspi/spi-util.c:
+       Renamed spi_freeString to SPI_freeString, for consistency.  Added
+       documentation for this function.
+
+       * cspi/spi-util.h:
+       Renamed spi_freeString to SPI_freeString, for consistency.  
+       Removed obsolete method declaration string_from_corba_string.
+
+       * test/keysynth-demo.c:
+       Small tweak to comments.
+
+       * test/simple-at.c:
+       Stopped leaking the strings returned from CSPI. 
+
+2001-11-28  Bill Haneman  <bill.haneman@sun.com>
+
+       Merged Michael's branch (see his ChangeLog entries below).
+       
+       * at-bridge/bridge.c: Explicitly hold a ref to the registry while
+       bridge is alive, release on exit.
+       
+       * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
+       Fix type check macro.
+       
+       * cspi/spi_event.c:
+       Added AccessibleKeystrokeListener_unref() method to reduce leakage.
+       
+       * cspi/spi_main.c: 
+       Added is_gnome_app static, and method cspi_is_gnome_app(), 
+       so we can call the appropriate shutdown routine at exit in SPI_exit.
+       
+       * cspi/spi_main.c (cspi_object_ref):
+       Duplicate the corba object passed in, since we're keeping it around.
+       
+       * cspi/SPI_exit.c, cspi_cleanup:
+       Moved the releasing of the live refs to its own function, so we
+       can put it in g_atexit ().  Call the appropriate shutdown API
+       depending on whethe calling client is a gnome app or not
+       (bonobo_main_quit or CORBA_ORB_shutdown).
+       
+       * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
+       Unref the listener when this method is called, after
+       deregistration.  Updated the API docs to note this behavior.
+
+       * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
+       Bugfixes: Ref the bonobo object when returning a parent or child 
+       reference, or an AccessibleRelation.  Generally made sure
+       BonoboObject refcount is incremented whenever we return an
+       Accessible.
+
+       * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
+       Fixed typo/bug in signal declaration.
+       
+       * libspi/accessibleeventlistener.h:
+       Fixed a type macro.
+
+       * libspi/application.c (spi_application_new):
+       Fixed leak in initialization.
+
+       * libspi/desktop.c:
+       Remembered to increment bonobo-object refcount when returning
+       children (applications) from desktop object.
+       Added (empty) finalize method.
+
+       * libspi/deviceeventcontroller.c:
+       Hold a ref to listeners inside DEControllerKeyListeners.
+       Added dec_key_listener_free() method.  Use prepend instead of
+       append in key_listener list.  Fixed some refcount madness and
+       leaks in the listener registration/deregistration - deregistration
+       now calls dec_key_listener_free() on listeners, and on the
+       temporarily constructed dec_key_listener() used to perform the search/match.
+
+       * libspi/hypertext.c (spi_hypertest_finalize):
+       Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
+       class.  Also fixed spi_hypertext_interface_new() and
+       SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
+
+       * libspi/hypertext.h: 
+       Removed pointless and duplicate AtkObject pointer from
+       SpiHypertextClass.
+
+       * libspi/keystrokelistener.c:
+       Fixed incorrect type of keystroke_listener_parent_class,
+       renamed keystroke_listener_object_finalize to
+       spi_keystroke_listener_object_finalize.
+       Fixed typo in signal declaration
+       (spi_keystroke_listener_class_init).
+
+       * libspi/registry.c:
+       Added funcsions spi_listener_struct_new() and
+       spi_listener_struct_free() to help with memory management issues.
+       We also now use these methods instead of gnew + poking stuff into
+       the struct, and to decrement listener counts/free the listeners
+       when deregistering them.
+       Fix more refcount bugs in getDesktop() and
+       getDeviceEventController().  
+
+       * test/simple-at.c:
+       De-ref the desktop after enumerating the applications.  Explicitly
+       decrement the refcounts on the created listeners on exit (using
+       _unref for keystroke listeners, and via the
+       deregisterGlobalEventListenerAll command for other event
+       listeners).
+       
+2001-11-27  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi-listener.h: fixup enum.
+
+2001-11-27  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi-listener-impl.c (cspi_event_listener_new),
+       (cspi_keystroke_listener_new): Use the cspi variants.
+
+2001-11-26  Michael Meeks  <michael@ximian.com>
+
+       * test/keysynth-demo.c: fix 2 compile warnings, missing
+       type in decl. etc.
+
+       * test/simple-at.c (report_focussed_accessible),
+       (report_focus_event, report_button_press),
+       (check_property_change, is_command_key),
+       (report_ordinary_key_event, report_command_key_event): upd.
+
+       * util/mag_client.h: include pre-requisites.
+
+       * libspi/accessibleeventlistener.c
+       (spi_event_listener_object_finalize): free any lingering
+       callbacks.
+       
+       * libspi/keystrokelistener.c
+       (keystroke_listener_object_finalize): ditto.
+
+       * cspi/spi-listener-impl.[ch]: Add to implement cspi style
+       callbacks, with cspi types.
+       
+       * cspi/spi_event.c (createAccessibleEventListener): chain to
+       (AccessibleEventListener_addCallback): here.
+       (createAccessibleKeystrokeListener): chain to 
+       (AccessibleKeystrokeListener_addCallback): here.
+
+       * libspi/keystrokelistener.c
+       (spi_keystroke_listener_class_init): add signal.
+       (impl_key_event): emit the event.
+       (boolean_handled_accumulator): impl.
+       (marshal_BOOLEAN__POINTER): add, gack.
+
+       * libspi/accessibleeventlistener.c
+       (spi_event_listener_class_init): add signal.
+       (impl_accessible_event_notify_event): emit the signal &
+       make the loop efficient.
+       (spi_event_listener_add_callback): prepend the callback.
+
+       * libspi/accessibleeventlistener.h: add an 'event' signal,
+       decl type on callback.
+
+       * libspi/keystrokelistener.h: ditto.
+
+       * cspi/spi-listener.h: make methods typesafe and
+       make them use the new event typedefs.
+
+       * test/simple-at.c (report_focussed_accessible):
+       include mag_client.h
+       Use *(void *)text_interface not the other thing.
+       
+       * configure.in: add gtk to registryd bits - since we use
+       gdk there ( why ? )
+
+       * util/magnifier.c: include libbonobo.h
+       
+2001-11-25  Bill Haneman  <bill.haneman@sun.com>
+
+       * test/keysynth-demo.c:
+       Turned this into a simple scanning keyboard, to demonstrate the
+       use of g_timeout_add () as a means of creating timers for
+       scanning, and the use of GtkStyle for visually indicating when
+       virtual keyboard elements are selected.
+
+       keysynth-demo now listens to any keyboard keys with zero-valued
+       keycodes (i.e. 'unused' keys) and interprets them as
+       single-switches.
+
+       Reworked the shiftlatch code so that shift-down state isn't held
+       for long periods (it's only synthesized immediately prior to
+       the keysynth event it's modifying).  Note that shiftlatch in this
+       demo is a convenience, not intended to take the place of AccessX 
+       which is the better choice for getting 'sticky' modifier keys.
+
+       * libspi/deviceeventcontroller.c:
+       * at-bridge/bridge.c:
+       * cspi/spi_registry.c:
+       Removed some debug print stuff, and put other verbosity in #ifdef
+       blocks.
+
+       * util/magnifier.c:
+       * util/mag_image.h:
+       Implemented some more of the magnifier IDL for the simple
+       magnifier: namely, getZoomRegionParams. 
+       Added mag_x and mag_y members to MagnifierData struct, aid of this
+       implementation.
+       Added GtkWindow::realize signal handler to magnifier, to keep it
+       from receiving keyboard focus from the WM.
+
+2001-11-23  Mark McLoughlin  <mark@skynet.ie>
+
+       * cspi/spi-private.h: my guess at what michael forgot
+       before he ran off to NZ :-)
+
+2001-11-23  Michael Meeks  <michael@ximian.com>
+
+       * cspi/spi_event.c (AccessibleEventListener_removeCallback):
+       comment out non existant method invoke so we link.
+
+       * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
+       use bonobo_exception_get_text for more friendly warnings.
+
+       * cspi/spi.c (Obj_Add): move into spi_main & rename
+       spi_object_add; kill spi.c
+
+       * cspi/spi_registry.c
+       (deregisterGlobalEventListener),
+       (deregisterGlobalEventListenerAll),
+       (registerGlobalEventListener): fix exception leaks.
+
+       * cspi/spi_main.c (spi_exception): impl. helper, so we
+       don't leak exceptions.
+
+       * cspi/spi_selection.c
+       (AccessibleSelection_deselectSelectedChild): return the
+       success state.
+
+       * cspi/spi_main.c (spi_ev): impl; hack - gack.
+       (spi_registry): ditto.
+       (SPI_init): guard against double inits.
+
+       * cspi/*.c: use spi_ev (), and spi_registry () where
+       appropriate - a temporary hack until we have something
+       better. Use spi_object_add
+
+2001-11-22  Michael Meeks  <michael@ximian.com>
+
+       * cspi/Makefile.am: re organise, install the headers.
+
+       * cspi/*.h: add G_BEGIN/END_DECLS
+
+2001-22-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * test/simple-at.c:
+       Added non-preemptive keylistener for key events with no modifiers
+       and shift-only modifier.
+
+       * libspi/keystrokelistener.c:
+       Removed some verbose diagnostics printout.
+
+       * cspi/spi_registry.c:
+       Fixed a bug that caused all key listeners to be registered as
+       pre-emptive.
+       
+       * libspi/deviceeventcontroller.c:
+       Fixed bug that caused XGrabKey (preemptive key grab) to be called
+       for non-preemptive key masks.
+
+
+2001-22-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * docs/reference/idl/at-spi-idl-docs.sgml:
+       * docs/reference/idl/at-spi-idl-sections.txt:
+       * docs/reference/idl/at-spi-idl-overrides.txt:
+       Added missing files.
+
+       * docs/reference/Makefile.am:
+       removed idl from SUBDIRS until we can figure a way to get gtk-doc
+       to scan the IDL files :-(
+
+       * docs/reference:
+       * docs/cspi:
+       * docs/idl:
+       Added .cvsignore files.
+       
+2001-21-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * libspi/deviceeventcontroller.c:
+       * libspi/keystrokelistener.c:
+       * cspi/spi_event.c:
+       * cspi/spi_registry.c:
+       Added filters for KeySets, KeyEventSeq, and event types to key
+       event dispatching, so listeners should only receive those events
+       that they requested :-)
+
+2001-21-11  Bill Haneman  <bill.haneman@sun.com>
+
+       * configure.in:
+       * docs/Makefile.am:
+       * docs/reference:
+       * docs/reference:Makefile.am:
+       * docs/reference/cspi:
+       * docs/reference/cspi:Makefile.am:
+       * docs/reference/cspi:tmpl:
+       * docs/reference/cspi:tmpl:*.sgml:
+       * docs/reference/idl:
+       * docs/reference/idl:Makefile.am:
+       * docs/reference/idl:at-spi-idl-sections.txt:
+       * docs/reference/idl:at-spi-idl-docs.sgml:
+       * docs/reference/idl:tmpl:
+       * docs/reference/idl:tmpl:*.sgml:
+
+       Restructured docs directory to allow separate 'reference' docs
+       section, and forked idl and cspi docs.  Added the sgml template
+       files to CVS.  Added the first sections/structural sgml for the
+       IDL docs.
+
+2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
+
+       * configure.in, libspi/Makefile.am: find libXtst.
+
+2001-11-21  Michael Meeks  <michael@ximian.com>
+
+       * test/accessx-gui.c: s/spi_value/value/ - doh.
+
+       * libspi/base.[ch]: add.
+
+2001-18-11  Bill Haneman <bill.haneman@sun.com>
+
+       * idl/Accessible.idl:
+       * idl/Application.idl:
+       * idl/Registry.idl:
+       * idl/Action.idl:
+       Started gtk-doc cleanup on IDL.
+
+       * libspi/deviceeventcontroller.c:
+       Added and connected non-preemptive key notification from the
+       toolkits (in addition to the pre-emptive support from XServer
+       which we had before, but which causes 'focus flashing').  Filters
+       are presently limited to key modifiers and global/non-global,
+       KeySets are presently ignored, as are KeyEvent masks.
+
+       Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
+       structs into the persistant structure rather than just storing
+       pointers to things that might not persist across servant
+       invocations.
+
+       The XGrabKey call now does async keygrabs, because synchronous
+       ones were deadlocking with GDK_event code in a very nasty way.
+
+       Added boolean to internal method notify_keylisteners, to indicate
+       whether the event came from the 'toolkit source' or the 'global
+       (XServer) source' - this is used in the notification process to
+       determine which listeners to send the event to.
+
+       deviceeventcontroller.c is now warning-free.
+       
+       * libspi/registry.c:
+       Fixed regression in application de-registration.
+       Also fixed some really brain-dead weirdness having to do with
+       event dispatching - event structs are now duplicated before being
+       re-marshalled in the dispatch to listeners.  This also fixes a
+       Solaris build problem.
+       
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/registry.c
+       (impl_accessibility_registry_deregister_global_event_listener): 
+       segv. protection.
+
+       * libspi/deviceeventcontroller.c
+       (spi_device_event_controller_check_key_event): return
+       FALSE on no virtual method.
+
+       * libspi/*..h: make includes work on a correctly pathed install.
+
+       * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
+
+       * libspi/application.h: kill unused ( and whacked out )
+       gboolean *spi_application_set_id (AtkObject *app, long id);
+
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/*.[ch]: further convert to bonobo's type func
+       macros, remove redundnant casts etc.
+
+       * libspi/text.c s/accessibility_text/spi_text/g,
+       re-order to de-cruft.
+
+       * libspi/hypertext.c: re-order to kill a huge slew
+       of redundant forward decls.
+
+       * libspi/relation.c: ditto.
+
+       * libspi/image.c: ditto.
+
+       * */.cvsignore: update
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/deviceeventcontroller.c
+       (_controller_register_with_devices): use g_getenv,
+       kill stdlib.h include.
+
+       * libspi/keystrokelistener.c
+       (spi_keystroke_listener_get_type): kill
+       (spi_keystroke_listener_class_init),
+       (spi_keystroke_listener_init): rename to this.
+
+       * libspi/text.c (impl_getAttributes): fix warning / bug.
+
+       * libspi/*.[ch]: more headers, includes and over commenting.
+       
+2001-20-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/*.[ch]: fixup headers, includes and over commenting.
+
+       * libspi/image.c (impl__get_imageDescription): const
+       correctness warning fix. remove redundant casting.
+
+       * libspi/table.c (impl_getRowDescription): ditto.
+       (impl_getColumnDescription): ditto.
+
+       * libspi/libspi.h: add.
+
+2001-19-11  Michael Meeks  <michael@ximian.com>
+
+       * libspi/editabletext.c (impl_setAttributes): fix warnings.
+
+       * libspi/component.c (accessibility_component_get_type): 
+       rename to (spi_component_get_type): and macroify.
+       (accessibility_component_init): rename to
+       (spi_component_init): this
+       (accessibility_component_class_init): rename to
+       (spi_component_class_init): this
+
+       * libspi/action.c (spi_action_get_type): kill, use the macro.
+
+       * libspi/deviceeventcontroller.c (_compare_listeners): re-order
+       to avoid prototype.
+
+       * libspi/application.c (spi_application_object_event_listener),
+       (impl_accessibility_application_register_object_event_listener):
+       warning fixes / const understanding updates.
+
+       * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
+       warning fixes.
+
 2001-18-11  Bill Haneman <bill.haneman@sun.com>
 
        * libspi/spi_accessible.c: Added docs and C bindings for