X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fat-spi2-atk.git;a=blobdiff_plain;f=ChangeLog;h=92845b6e20f7b7e417318524cf2c826966c517e1;hp=f0d5258b6d09ef6669c0ca78c1c9f35f6f9a4983;hb=d35cd400a36b0f1393c17ce47015bf753327ccae;hpb=fdf87471b3d56d7a66d31f33c1ef3d631e9ef51c diff --git a/ChangeLog b/ChangeLog index f0d5258..92845b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,2260 @@ +2001-12-10 Michael Meeks + + * configure.in: use cspi/libspi.pc.in instead. + + * Makefile.am (pkgconfig_DATA): upd. to match. + + * test/simple-at.c (report_focus_event): kill hacks around + bad return values, use putenv not setenv + + * libspi/desktop.c (impl_desktop_get_child_at_index): don't + fire ChildGone - I killed it. + + * libspi/component.c + (impl_accessibility_component_get_extents): remove + bogus return. + + * idl/Accessible.idl: kill ChildGone exception. + + * cspi/*.[ch]: kill int return from ref / unref. + + * cspi/spi_main.c (cspi_object_add_check): fold into + (cspi_object_add): here. + + * cspi/spi_component.c (AccessibleComponent_getExtents): + handle exceptions elegantly. + + * cspi/spi-private.h (cspi_check_ev_return), + (cspi_return_if_fail): impl. + + * cspi/spi_accessible.c: use extensively. + (AccessibleStateSet_equals): add direct compare check. + + * cspi/spi_selection.c: tolerate NULL objs, and check + exceptions before return. + + * cspi/spi-util.c (cspi_warn_ev): rename to + (cspi_check_ev): this & don't pass ev in; no point. + +2001-12-10 Michael Meeks + + * test/test-simple.c: use putenv not setenv + (get_environment_vars): more chatty if you're not using + the fun bits. + + * test/simple-at.c: do the setenv so more people see the + nice demo easily. + +2001-12-10 Bill Haneman + + * libspi/registry.c: + Changed check of CORBA_environment on notification to be a warning + instead of an error for the moment, since we can recover from this + error when caused by a queued notification from a dead app. + + * libspi/value.c: + Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as + used by all current implementors of AtkValue), and coerce to + CORBA_float. (Proper general case fix may require change to Value.idl). + +2001-12-09 Bill Haneman + + * cspi/spi.h: + * cspi/spi_event.c: + * cspi/spi_accessible.c: + Documentation fixes: added user_data params to documentation for + listeners and callbacks. + + * cspi/spi_accessible.c: + Changed AccessibleStateSet_compare to return a + StateSet rather than return the difference set into a third parameter. + + +2001-12-09 Bill Haneman + + * configure.in: + Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL. + remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like + it). + + * Makefile.am: + Remove subdirectory po from SUBDIRS for now. + + * at-bridge/bridge.c: + Beefed up a couple of debug printouts. + One-line fix for signal notification name formatting. + + * libspi/accessible.c: + Added assertion to spi_accessible_new (). + + * libspi/application.c: + Put #ifdef qualifiers around a printf. + + * libspi/value.c: + Fixed derivation (from BONOBO_OBJECT to SPI_BASE). + + * registryd/Makefile.am: + * util/Makefile.am: + Replaces use of XML_I18N_MERGE_SERVER_RULE with + INTLTOOL_SERVER_RULE macro. + + * test/simple-at.c: + Added an event listener for several ATK signals, for + testing and debugging. Removed a few g_warnings. + Added test output if focussed item implements the Value interface. + + * test/test-simple.c: + Added test_value () function (known not to pass at the moment, so + not actually called yet. + +2001-12-08 Michael Meeks + + * at-bridge/bridge.c (bridge_focus_tracker), + (emit_eventv): fix the same ref. leak. + (register_atk_event_listeners): don't leak. + + * cspi/spi-listener-impl.c (cspi_event): more + protection from client code. + + * test/test-simple.c (test_desktop): unref the app. + + * test/Makefile.am: upd. TESTS. + + * at-bridge/bridge.c (bridge_exit_func): release the registry. + + * test/keysynth-demo.c (keysynth_exit): unref the listeners. + + * cspi/spi_accessible.c (Accessible_queryInterface): constify. + + * cspi/spi_registry.c: constify in strings. + (deregisterGlobalEventListenerAll): don't release the ref. + + * cspi/spi.h: start removing redundant / conflicting + gtkdoc comments, making the API readable at a glance :-) + + * cspi/spi_event.c (AccessibleEventListener_unref): impl. + + * test/keysynth-demo.c (keysynth_exit, main): upd. + + * test/simple-at.c (main, simple_at_exit): upd. + + * test/test-simple.c (unutterable_horror): kill. + (utterable_normal_derefs): kill. + (main): upd & do a setenv before gtk_init, so that we + can use memprof - and to save the pain of remembering + this, if we're running under memprof - don't exit. + + * cspi/spi_main.c (SPI_exit): return exit status + for cspi. + (SPI_event_quit): impl. + (SPI_event_main): simplify. + (cspi_is_gnome_app): kill. + (SPI_init): kill isGNOMEapp arg. + + * at-bridge/bridge.c (register_atk_event_listeners): + re-instate the unref. + (bridge_exit_func): don't re-activate the registry, + protect vs. theoretical re-entry, use the + AT_BRIDGE_SHUTDOWN env. var to determine whether to + assert a clean shutdown - for regression tests. + +2001-12-08 Abel Cheung + + * configure.in: Comment out dummy i18n support for now, + otherwise it fails to build. + * idl/Makefile.am: Add Selection.idl and Hypertext.idl to + EXTRA_DIST. They are missing in tarball. + +2001-12-07 Michael Meeks + + * util/magnifier.c: kill bonobo activation reg. race. + + * libspi/component.c + (impl_accessibility_component_get_extents): make it match + it's sig. + + * libspi/registry.c (_registry_notify_listeners): + re-remove X headers & reconcile conflicts. + (spi_listener_struct_free): bad conflict resolve. + (impl_accessibility_registry_register_application): + more bad merging fixed. + (impl_accessibility_registry_deregister_application): ditto. + (spi_registry_new): ditto. + (spi_registry_init): don't have an applications field. + +[ merge fixups2 branch to here ] +2001-12-07 Michael Meeks + + * test/simple-at.c (report_focus_event), + (report_focussed_accessible): remove g_warning debug. + +2001-12-07 Michael Meeks + + * test/test-simple.c (validate_tree): comment out some checks. + (test_desktop): app now not registered idly - horay. + +2001-12-07 Michael Meeks + + * cspi/spi_registry.c + (registerAccessibleKeystrokeListener): clean, stop it leaking + great swathes of memory, and device event controller references. + ensure we always pass valid sequences. + (deregisterAccessibleKeystrokeListener): ditto. + (generateKeyEvent): upd. + + * at-bridge/bridge.c (bridge_key_listener): handle + registry dead exception gracefully. + (bridge_focus_tracker, emit_eventv): free ev. + + * test/simple-at.c (report_focus_event): fix polarity. + + * libspi/application.c (notify_listeners): kill the ev + argument, and make sure we init the ev we use. + (spi_application_object_event_listener): split out a chunk + (get_atk_object_ref): here & fixup. + (reverse_lookup_name_for_toolkit_event): make const. + (spi_application_toolkit_event_listener): fixup, kill leaks + ref problems etc. + + * at-bridge/bridge.c (register_atk_event_listeners): + don't unref the noop object - causes grief. + + * libspi/registry.c: remove the X headers. + turn off the debug churn. + + * libspi/accessible.c (spi_accessible_new_return): only + release the ref if we are supposed to [doh] + + * test/simple-at.c (report_button_press, report_focus_event): + guard vs. unexpected exit. + + * at-bridge/bridge.c (gtk_module_init): prune printf. + (bridge_exit_func): fix app unref. + + * libspi/Makefile.am: don't install registry or desktop.h + + * libspi/*.h: update includes. + + * libspi/application.h: don't include ourself, or + other redundant headers. + +2001-12-06 Michael Meeks + + * libspi/accessible.c + (get_accessible_from_servant): impl. + Upd. all CORBA impl.s to use it killing cut and paste. + + * cspi/spi_main.c (cspi_cleanup): guard vs. double + invokes. + (SPI_init): register atexit cleanup handler here. + +2001-12-06 Michael Meeks + + * at-bridge/bridge.c (gtk_module_init): g_error on + activation exception + +2001-12-06 Michael Meeks + + * at-bridge/bridge.c (gtk_module_init): some sort of + confusing merge clash - reverted. + (bridge_idle_init): ditto. + + * test/test-simple.c (main, utterable_normal_derefs): + merge from Bill - somehow not committed. + +2001-12-06 Michael Meeks + + * libspi/value.c (spi_value_class_init): upd. + (spi_value_finalize): kill. + + * libspi/table.c (spi_table_finalize): kill. + (spi_table_interface_new): upd. + (spi_table_class_init): upd. + (get_table_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/selection.c (spi_selection_finalize): kill. + (spi_selection_interface_new): upd. + (spi_selection_class_init): upd. + (get_selection_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/relation.c (spi_relation_finalize): kill. + (spi_relation_class_init, spi_relation_new): upd + + * libspi/image.c (spi_image_finalize): kill. + (spi_image_class_init): upd. + (spi_image_interface_new): upd. + (get_image_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/hyperlink.c (spi_hyperlink_class_init): upd. + (spi_hyperlink_finalize): kill. + (spi_hyperlink_new): upd. + (get_hyperlink_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/hypertext.c (spi_hypertext_interface_new): upd. + (spi_hypertext_finalize): kill. + (spi_hypertext_class_init): upd. + (get_hypertext_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/editabletext.c (spi_editable_text_finalize): kill. + (spi_editable_text_interface_new): upd. + (get_editable_text_from_servant): impl. + Upd. all CORBA impl.s to use it killing yet more cut and paste. + + * libspi/text.c (get_text_from_servant): impl. + All impls - update to use it killing more cut and paste, + also fix bad string returns on duff args ( a somewhat + impossible case to handle - but hey ). + (spi_text_construct): impl. + (spi_text_interface_new): upd. + (spi_text_object_finalize): kill. + + * libspi/component.c + (accessibility_component_object_finalize): kill. + (spi_component_class_init): upd. + (get_component_from_servant): impl. helper to kill cut & paste. + (impl_accessibility_component_contains): + (impl_accessibility_component_get_accessible_at_point): + (impl_accessibility_component_get_position): + (impl_accessibility_component_get_extents): + (impl_accessibility_component_get_mdi_z_order): + (impl_accessibility_component_get_layer): + (spi_component_interface_new): upd. + + * libspi/action.c (spi_action_finalize): kill. + (spi_action_class_init): upd. inherit from SpiObject. + (spi_action_interface_new): upd. + (get_action_from_servant): impl. helper to reduce cut & paste. + (impl_getKeyBinding, impl_getName, impl_doAction), + (impl_getDescription): Use it everywhere. + + * cspi/spi_main.c (get_live_refs): a pointer hash. + (spi_object_hash, spi_object_equal): comment out. + There are issues with CORBA object hashing that need + solving. + + * libspi/application.c (spi_application_init), + (spi_application_new): upd. + + * libspi/accessible.c (spi_accessible_object_finalize): kill. + (spi_accessible_class_init): upd. + s/accessible/object/ in epv methods. + +2001-12-05 Bill Haneman + + * at-bridge/bridge.c: + Reorder the bridge initialization into the bridge gtk_module_init, + an immediate call to bridge_register_app, and an idle_add for + register_atk_event_listeners (the only code that *must* wait until + GTK+ is initialized) via bridge_idle_add. Bridge_register_app does + the activation, creates the application's Accessible object, and + queues the bridge_idle_init function. Restored call to + Accessibility_Registry_deregisterApplication(). + Prior to making this call we obtain a new reference to the + registry, which is a temporary hack that helps us handle apps that + shut down the bonobo mainloop before we get there. + + * libspi/registry.c: + Fix string leakage in debug block, and don't segv if a an app + dies before its event notifications have been propagated. + + * cpi/spi_util.c: + Modify cspi_check_ev() to call g_warning() rather than g_error(), + as stopgap measure until we get proper exception handling when + objects die during or before interrogation. + + * cspi/spi_main.c: + * cspi/spi.h: + Moved use of isGNOMEApp flag from SPI_event_main to SPI_init. + Also changed default value of is_gnome_app to TRUE. + + * test/simple-at.c: + * test/keysynth-demo.c: + Changed use of SPI_init and SPI_event_main to reflect API change above. + + * test/simple-at.c: + Made report_focus_event check the warning value from getName + before reporting on focussed accessible; simplifies handling of + notifications from dead objects. + + * test/test-simple.c: (Changes not in this patch since source is + not in CVS ?) + +2001-12-05 Michael Meeks + + * registryd/registryd.c (main): protect against + bonobo-activation startup race condition. + + * cspi/spi_main.c (cspi_object_add_check): cope + with the exception elegantly. + + * idl/Accessible.idl: decl. ChildGone + + * libspi/desktop.c (spi_desktop_dispose): impl. + (spi_desktop_class_init): upd. + (spi_desktop_add_application), + (spi_desktop_remove_application), + (abnormal_application_termination): impl. + (impl_desktop_get_child_at_index): re-impl. + + * libspi/registry.c + (impl_accessibility_registry_deregister_application), + (impl_accessibility_registry_register_application): + kill excessive debug clutter. + + * test/test-simple.c (test_misc): test some NULL + tolerance. (main): upd. + + * cspi/spi_main.c (cspi_accessible_is_a): a NULL + implements no interfaces - so let's not crash. + + * cspi/spi_accessible.c (Accessible_queryInterface): ditto. + + * libspi/accessible.c (spi_accessible_new_return): impl. + helper to calm the cut and paste, to cope with + NULL AtkObjects effectively and efficiently, and to kill + the referencing bugs. + + * libspi/table.c (impl_getAccessibleAt), + (impl_getRowHeader, impl_getColumnHeader): upd. + + * libspi/hyperlink.c (impl_getObject): upd. + + * libspi/accessible.c + (impl_accessibility_accessible_get_child_at_index): upd. + + * libspi/component.c + (impl_accessibility_component_get_accessible_at_point): upd. + + * test/test-simple.c (test_editable_text, test_text): impl. + some simple tests. + + * cspi/spi_editabletext.c + (AccessibleEditableText_insertText): constify. + + * test/test-simple.c (focus_me): make more robust. + + * libspi/accessible.c: remove some printfs in methods that + we test and work fine, so we can get a clean tree dump. + + * test/test-simple.c (validate_accessible), + (validate_tree): make tree dumping pretty too. + + * at-bridge/bridge.c (bridge_signal_listener): upd. so + it builds without debug on. + + * test/test-simple.c (validate_accessible): fix the most + ludicrous bug. + + * cspi/spi_main.c (spi_object_release): leave the nicely + blanked memory around if in debug mode. + + * cspi/spi-listener-impl.c (cspi_event): use add_check. + +[committed to fixups2] +2001-12-05 Michael Meeks + + * libspi/editabletext.c + (spi_editable_text_class_init): g_type_class_peek_parent, + not interface peek - so we finalize cleanly. + + * libspi/accessible.c (spi_accessible_new): kill debug. + + * test/test-simple.c (validate_accessible): fix ref. + leak, print strings before freeing them; sigh, comment a + chunk out due to strangeness. + (validate_tree): unref the child after use. + + * cspi/spi_component.c (AccessibleComponent_getLayer): + add missing break statement, switch on zlayer not the + uninitialized retval. + + * cspi/spi_main.c (cspi_object_add): add assert, local ref + before (possibly re-entering) remote unref. + + * test/simple-at.c (main): unref the desktop. + + * cspi/spi_accessible.c (cspi_accessible_is_a): move + into: + + * cspi/spi_main.c (cspi_accessible_is_a): here to + isolate bonobo API usage more. + + * libspi/registry.c (impl_accessibility_registry_register_application): + prune bogus comment. + +2001-12-04 Michael Meeks + + * test/test-simple.c (validate_tree): upd. + IndexInParent check to make it more lucid. + (validate_accessible): dump the tree. + + * libspi/accessible.c (de_register_public_ref), + (get_public_refs): impl. + (spi_accessible_new): make more efficient & intuitive. + Now IndexInParent check works. + +2001-12-04 Michael Meeks + + * cspi/spi-util.h: remove. + + * cspi/spi.h: move SPI_freeString here + + * libspi/component.c (impl_accessibility_component_get_layer): + warning fixage. + (impl_accessibility_component_get_mdi_z_order): ditto, + return -1 on error - is this ok ? + + * test/test-simple.c (test_application): impl. + + * cspi/spi_accessible.c (Accessible_getApplication), + (Accessible_isApplication): impl. + + * libspi/registry.c (spi_listener_struct_free): release + the CORBA reference too. + + * libspi/accessible.c + (impl_accessibility_accessible_get_parent): fix ref leak. + + * libspi/registry.c (spi_registry_new): make the registry + immortal - we don't want it to go away ever. + + * libspi/application.c + (spi_accessible_application_finalize): impl. cleanup. + + * cspi/spi_registry.c + (deregisterGlobalEventListenerAll), + (deregisterGlobalEventListener), + (deregisterAccessibleKeystrokeListener): fix ref leak. + + * cspi/spi_main.c (SPI_init): remove redundant ref. + + * test/test-simple.c (unutterable_horror): impl. to force a + clean shutdown. + (main): use it. + + * libspi/registry.c + (impl_accessibility_registry_deregister_application): release + the application when we de-register it. + + * at-bridge/bridge.c (bridge_exit_func): comment out shutdown + until we have the infastructure to get it right. + +2001-12-03 Michael Meeks + + * libspi/Makefile.am: only build eventlistener.[ch] + + * libspi/accessible.c + (impl_accessibility_accessible_get_child_at_index): don't leak. + + * at-bridge/bridge.c (bridge_exit_func): cope with an exit + before we hit the idle handler. + + * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for + debugging than exit. + + * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue. + + * libspi/listener.c (impl_notify_event): check source + not NIL before unref. + + * libspi/registry.c (impl_registry_notify_event): ditto. + + * libspi/eventlistener.c + (impl_accessible_event_notify_event): unref the source. + + * libspi/accessibleeventlistener.c + (impl_accessible_event_notify_event): unref the source. + + * idl/Event.idl: remove 'hash_id' attribute - of no + concievable use. + + * libspi/application.c (notify_listeners): upd list + iteration & sig. + (spi_application_object_event_listener), + (spi_application_toolkit_event_listener): upd to do correct + CORBA ref counting. + + * libspi/registry.c + (_registry_notify_listeners): update. + (parse_event_type): this method also leaks like a sieve. + (impl_accessibility_registry_deregister_global_event_listener): + fix ETYPE_WINDOW case. + + * libspi/application.c + (impl_accessibility_application_register_object_event_listener): + kill leak. + + * libspi/hyperlink.c (impl_getObject): fix ref mistake. + + * libspi/hypertext.c (impl_getLink): ditto. + + * cspi/spi_main.c (cspi_object_add): remove + bogus CORBA_Object_duplicate. + + * cspi/spi-listener-impl.c (cspi_event): dup/ref + on the object_add. + + * cspi/spi_accessible.c + (Accessible_getRelationSet): fix leak / referencing issue. + + * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl. + (cspi_object_add, cspi_object_unref): upd. + (spi_object_release, get_live_refs): impl. + (cspi_cleanup): simplify. + + * *.[ch]: s/boolean/SpiBoolean/ + + * cspi/spi_accessible.c (role_names): actualy order so it + corresponds with the enum ! + + * test/test-simple.c (test_roles): check some role strings + vs. enums to detect offset errors. + +2001-12-01 Michael Meeks + + * cspi/spi_main.c (cspi_object_add_check): impl. helper. + + * cspi/spi_accessible.c (Accessible_getChildAtIndex): + check ev before + (Accessible_getChildAtIndex): use cspi_add_check so we + check the ev before using a (possibly) invalid value. + + * libspi/accessible.c + (impl_accessibility_accessible_get_parent): don't segv + on a NULL parent. + + * at-bridge/bridge.c (gtk_module_init): upd. + (bridge_property_event_listener): don't leak strings + and events ! + (bridge_state_event_listener), + (bridge_property_event_listener): don't use a static + buffer in case of recursive event emission & + re-enterancy - split out the swathe of cut and paste + into: + (emit_eventv): and fix 2 ref leaks here & comply to the + coding style. + (bridge_register_app): rename to + (bridge_idle_init): this and kill arg parsing, split + various inits & bonobo-activation registration to module + init time, kill referencing error. + (bridge_exit_func): fix the same leak. + (bridge_focus_tracker): don't leak event structures + and strings. + (bridge_signal_listener): more leakage and cut & paste + fixage. + (bridge_key_listener): return the result - FIXME is + this polarity correct ? + (accessibility_keystroke_from_atk_key_event): rename + (accessibility_init_keystroke_from_atk_key_event): and stop + leakage. + (gtk_module_init): return a value - not that it is checked by + Gtk - but hey. + (bridge_key_listener): register my horror at casting between + IDL defined structs. + (bridge_get_registry): kill - not used. + + * cspi/spi_accessible.c (Accessible_getRole): make return const. + + * test/test-simple.c (test_roles): impl. + (test_desktop, validate_accessible, validate_tree): impl. + + * cspi/spi_accessible.c (role_names): fixup bogus + MAX_ROLES setup, make constants const for efficient linkage + (AccessibleRole_getName): conform to coding style, make + return 'const' + +2001-11-30 Michael Meeks + + * cspi/spi.h: add missing prototype. + + * libspi/registry.c (spi_listener_struct_new): fix sig. + + * test/Makefile.am: add test-simple + + * test/test-simple.c: add + + * test/test.sh: add. + + * cspi/spi_main.c (SPI_init): make SPI_inited module global, + + * at-bridge/bridge.c (gtk_module_init): don't do an idle init, + do it straight - since otherwise we often get an activation race. + +[ work before Bill duplicated a chunk of it ... ] +2001-11-30 Michael Meeks + + * libspi/keystrokelistener.c + (spi_keystroke_listener_class_init): fixup arg + count (doh). + + * libspi/eventlistener.c + (spi_event_listener_class_init): ditto. + + * tests/test.sh: add. + + * cspi/spi-listener-impl.h: update macros. + + * cspi/spi-listener-impl.c + (cspi_event_listener_remove_callback): add + correct pre-conditions. + + * cspi/spi_main.c (SPI_exit): guard vs. double + exits, exit the mainloop nicely. + (SPI_event_main): make more sense. + (SPI_init): move the atexit evilness here so we + always do it (yuck). + (SPI_event_main): upd. + + * test/simple-at.c: update for listener changes. + + * registryd/registryd.c (main): prune kruft. + + * libspi/libspi.h: upd. + + * libspi/eventlistener.[ch]: rename broken macros. + + * libspi/accessibleeventlistener.[ch]: remove. + + * libspi/*.[ch]: IS_SPI_... -> SPI_IS_... + + * test/test-simple.c: Add - automated tests. + + * cspi/spi-listener-impl.c (cspi_event), + (cspi_key_event): add user_data to invoke. + (cspi_keystroke_listener_finalize): impl. + (cspi_keystroke_listener_class_init): upd. + + * cspi/spi_event.c + (createAccessibleEventListener), + (AccessibleEventListener_addCallback), + (createAccessibleKeystrokeListener), + (AccessibleKeystrokeListener_addCallback): upd. + + * libspi/deviceeventcontroller.c + (spi_device_event_controller_check_key_event): add public proto. + + * libspi/registry.c + (impl_accessibility_registry_deregister_global_event_listener): + always init listeners. + (_registry_notify_listeners): yes it is. + + * cspi/spi-listener-impl.c (cspi_key_event): + move debug to here. + (cspi_event_listener_finalize): impl. + (cspi_event_listener_class_init): hook up. + (event_handler_new, event_handler_free), + (event_list_remove_by_callback): impl. + (cspi_event_listener_remove_callback), + (cspi_keystroke_listener_remove_callback), + (cspi_keystroke_listener_add_callback), + (cspi_event_listener_add_callback): upd. + + * libspi/keystrokelistener.c + (keystroke_listener_object_finalize): kill + (spi_keystroke_listener_class_init): upd. + (spi_keystroke_listener_add_callback), + (spi_keystroke_listener_remove_callback): kill, + use signals. + (impl_key_event): prune drasticaly. + + * libspi/eventlistener.c + (spi_event_listener_add_callback), + (spi_event_listener_remove_callback): kill, use + signals. + (impl_accessible_event_notify_event): upd. + (spi_event_listener_object_finalize): remove. + + * libspi/Makefile.am: use eventlistener.[ch] + +2001-12-04 Bill Haneman + + * libspi/registry.c (_registry_notify_listeners): + Changed listener loop iteration to use preferred convention. + Got rid of string memory leaks caused be calling g_strconcat + inside function calls. + + * libspi/registry.c (parse_event_type): + Stopped g_strconcat memory leaks, free the g_strsplit return, + g_strdup the split pieces when used, etc. + +2001-12-04 Bill Haneman + + * idl/State.idl: + Change method 'compare' to return a 'difference set' rather than + taking a StateSet as an out parameter (more Java-friendly). + + * idl/Accessible.idl: + Added CORBA struct 'BoundingBox', to faciliate API changes below: + + * idl/Component.idl: + * idl/Image.idl: + Changed methods 'getExtents' and 'getImageExtents' in these + interfaces to return a BoundingBox structure. + (getPosition and getSize are redundant and possibly should be + removed, rather than creating a corresponding Point struct.) + + * cspi/spi_component.c: + Modify implementation of getExtents to reflect the above IDL + change. + + * cspi/spi_image.c: + * cspi/spi.h: + Add (missing) AccessibleImage_getExtents () API. + + * docs/reference/cspi/at-spi-cspi-sections.txt: + Added AccessibleImage_getImageExtents () to docs. + +2001-12-03 Bill Haneman + + * idl/Component.idl: + Added two methods, getLayer () and getMDIZOrder (), to reflect + the new ATK methods atk_object_get_layer and + atk_object_get_mdi_z_order. (Which arguably should be part of the + AtkComponent API and AtkObject). Also added an enum, + ComponentLayer, for the first method's return value. + + * libspi/component.c: + Added implementations for these methods. + + * cspi/spi_component.c: + * cspi/spi.h: + Added cspi binding methods for above, + AccessibleComponent_getLayer() and + AccessibleComponent_getMDIZOrder(). + Added cspi enum 'AccessibleComponentLayer'. + + * docs/reference/cspi/at-spi-cspi-sections.txt: + Added above methods to docs. + + * cspi/spi-impl.h: + * cspi/spi*.[ch]: + Changed typedef for 'boolean' type (and all references to it) to + SPIBoolean, to avoid keyword clashes with C++. + + * test/simple-at.c: + Changed usages of 'boolean' to SPIBoolean. + + * test/keysynth-demo.c: + Changed usages of 'boolean' to 'gboolean' (since this is a gnome + app), except where SPIBoolean is required by the callbacks API. + +2001-12-02 Bill Haneman + + * cspi/spi_registry.c: + Removed obsolete X event loop for passive keygrabs (which now + lives in libspi). + + * registryd/registryd.c: + Removed unnecessary call to gdk_init() [cruft]. This also allows + removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in + * configure.in. + +2001-11-28 Bill Haneman + + * docs/reference/cspi: + Included docs for SPI_freeString in generated documentation. + + * cspi/spi-util.c: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 + + 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 + + * cspi/spi-listener.h: fixup enum. + +2001-11-27 Michael Meeks + + * cspi/spi-listener-impl.c (cspi_event_listener_new), + (cspi_keystroke_listener_new): Use the cspi variants. + +2001-11-26 Michael Meeks + + * 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 + + * 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 + + * cspi/spi-private.h: my guess at what michael forgot + before he ran off to NZ :-) + +2001-11-23 Michael Meeks + + * 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 + + * cspi/Makefile.am: re organise, install the headers. + + * cspi/*.h: add G_BEGIN/END_DECLS + +2001-22-11 Bill Haneman + + * 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 + + * 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 + + * 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 + + * 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 + + * configure.in, libspi/Makefile.am: find libXtst. + +2001-11-21 Michael Meeks + + * test/accessx-gui.c: s/spi_value/value/ - doh. + + * libspi/base.[ch]: add. + +2001-18-11 Bill Haneman + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * libspi/spi_accessible.c: Added docs and C bindings for + AccessibleStateSet. (No implementations yet). Documentation + coverage for C bindings now 100%. Made docs for event listeners + more explicit. + + * idl/Registry.idl: + Added methods + boolean notifyListenersSync (in DeviceEventListener listener, + in DeviceEvent event); + + oneway void notifyListenersAsync (in DeviceEventListener listener, + in DeviceEvent event); + + Added DeviceEventListener and DeviceEvent structs (may deprecate + KeyStroke and KeystrokeListener in favor of this generic + event/listener framework for devices). + + * libspi/deviceeventcontroller.c: + + Changed some key listener code to take masks, etc., and paved the + way for integration of toolkit/non-preemptive key events. Changed + signatures of some internal methods. + + * at-bridge/bridge.c: + Fixed regression connecting to interface signals, apparently + caused by GTK+ changes. + + Added an internal bridge_state_listener to deal with + property-change:accessible-state signals. + + Changed the key_listeners GList to store structs (including masks, + etc.) instead of just CORBA_Objects (required for full + implementation of key listener API). + + Connected the bridge to all currently supported Atk signals. + Events now supported: + object:property-change + object:property-change:accessible-name + object:property-change:accessible-state + object:property-change:accessible-description + object:property-change:accessible-parent + object:property-change:accessible-value + object:property-change:accessible-role + object:property-change:accessible-table-caption + object:property-change:accessible-table-column-description + object:property-change:accessible-table-column-header + object:property-change:accessible-table-row-description + object:property-change:accessible-table-row-header + object:property-change:accessible-table-summary + object:children-changed + object:visible-data-changed + object:selection-changed + object:text-selection-changed + object:text-changed + object:text-caret-moved + object:row-inserted + object:row-reordered + object:row-deleted + object:column-inserted + object:column-reordered + object:column-deleted + object:model-changed + +2001-16-11 Bill Haneman + + * libspi/hyperlink.c,h: + Fixed some broken stuff in hyperlink. + + * libspi/relation.h: + * libspi/relation.c: + * cspi/spi_accessible.c: + Initial implementations of AccessibleRelation methods, and docs. + + * libspi/accessible.c: + Fixed a bug that caused SEGV if an accessible + object's description is NULL, and a client + requests it. An empty string is now returned. + + * cspi/spi_editabletext.c: + * cspi/spi_hypertext.c: + * cspi/spi_image.c: + * cspi/spi_hyperlink.c: + * cspi/spi_table.c: + Added docs. + + Doc coverage now 95%. + +2001-16-11 Bill Haneman + + One last namespacing revision: + * libspi/accessibleeventlistener.[ch]: + Renamed SpiAccessibleEventListener to SpiEventListener, + (no need for two namespaces ;-) + + And lots of documentation fixes: + + * docs/at-spi-docs.sgml: + Fixed 'underscore vs. hyphen' bug that was preventing + the gtk-doc API docs from being automatically generated. + + * cspi/spi-impl.h + * cspi/spi-listener.h + * cspi/spi.h + * cspi/spi_accessible.c + * cspi/spi_action.c + * cspi/spi_application.c + * cspi/spi_component.c + * cspi/spi_editabletext.c + * cspi/spi_event.c + * cspi/spi_hypertext.c + * cspi/spi_main.c + * cspi/spi_registry.c + * cspi/spi_selection.c + * cspi/spi_text.c + * cspi/spi_value.c + * docs/Makefile.am + * docs/at-spi-docs.sgml + * docs/at-spi-sections.txt + + Added and fixed up gtk-doc documentation in cspi. + + Interfaces now (fully) documented (subject to revision and enhancement): + SPI_main + Event Listener Support + Registry API + AccessibleApplication + Accessible + AccessibleAction + AccessibleComponent + AccessibleEditableText + AccessibleSelection + AccessibleText + AccessibleValue + + still pending: + AccessibleStateSet + AccessibleRelationSet + AccessibleImage + AccessibleTable + AccessibleHyperlink + +2001-14-11 Bill Haneman + + * at-bridge/bridge.c: + Initial work for toolkit-level key snooper connection by bridge. + + * cspi/spi-impl.h: + * cspi/spi_*.h: + * cspi/spi_*.c: + New typedefs and fixes to support new namespacing, and cleaner + separation of cspi bindings from libspi bonobo implementation. + Removed inconsistent and extraneous Spi* namespace prefix that + had crept into cspi headers. + Lots of comment fixes that sed had missed. + + * cspi/spi-roletypes.h: + * cspi/spi-statetypes.h: + Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type + to AccessibleRoleType. + + * libspi/accessibleeventlistener.h: + Fixed minor namespacing weirdness. + + * libspi/deviceeventcontroller.c: + Reordered some internal API for device listeners. + Changed the key registry final boolean to 'is_system_global' + rather than 'is_synchronous', which is more descriptive of its + actual meaning. + Added spi_device_event_controller_new(). + Added SpiRegistry backpointer to SpiDeviceEventControllerClass. + + * libspi/keystrokelistener.[ch]: + Namespaced KeystrokeListener to SpiKeystrokeListener. + Changed uses of keymasks to use SPI_ prefix, and did other + knock-on fixups. + + * libspi/keymasks.h: + Namespaced keymask constants with SPI_ prefix. + + * libspi/registry.c: + Some warning fixes, and knock-on fixes from namespace changes. + + * test/Makefile.am: + Added rules for accessx-gui test program. + + * test/accessx-gui.c: + Added a simple GUI program in GTK+-2.0 for the AccessX keyboard + utility. It doesn't actually use at-spi, but it's still cool and + useful ;-) + + * test/keysynth-demo.c: + * test/simple-at.c: + * test/at.c: + * test/app.c: + Fixes so that these test clients work properly with the namespaced + libraries. (Incompletely tested for technical reasons, fixes may follow) + + +2001-13-11 Michael Meeks + + * libspi/application.c + (impl_accessibility_application_get_version), + (impl_accessibility_application_get_toolkit_name): + warning fixes. + (impl_accessibility_application_set_id), + (impl_accessibility_application_get_id): remove + redundant casting code. + + * libspi/action.c (impl_getDescription): fix warnings. + + * libspi/accessible.c + (impl_accessibility_accessible_get_parent), + (impl_accessibility_accessible_get_child_at_index), + (impl_accessibility_accessible_get_state), + (impl_accessibility_accessible_get_relation_set): + warning fixes & include action.h + +2001-13-11 Michael Meeks + + * *.[ch] fix bits I screwed up: + + s/([^ \tb(\*\&\?\",])spi_/\1/g; + s/([^ \tb(\*\&\?\",])Spi/\1/g; + +2001-13-11 Michael Meeks + + * *.[ch] Namespace libspi into spi_ and Spi. + +2001-13-11 Michael Meeks + + * Makefile.am: dist & install at-spi-1.0.pc + + * libspi/Makefile.am: install into at-spi-1.0 + + * idl/Makefile.am (idldir): install into at-spi-1.0 + + * at-spi-1.0.pc.in: add. + + * configure.in: build it. + +2001-12-11 Bill Haneman + + * test/keysynth-demo.c: + Use a 'realize' signal-handler to set the WM properties for + the virtual keyboard, rather than making it a "POPUP" type + override-redirect window (thanks to anders carlsson for that + tip!) + +2001-11-11 Bill Haneman + + * test/Makefile.am: + * test/keysynth-demo.c: + Added new test of key synthesis, which creates a simple + (mouse-operated) onscreen keyboard. It inserts key events into + the currently-focused window, thus it does not grab keyboard focus + itself. + + * cspi/spi_registry.c: + Added C binding for AT-SPI generateKeyEvent. + + * libspi/deviceeventcontroller.c: + Added call to XFilterEvent so that key listener works with XIM (we + hope). Added event_synth_type to generateKeyEvent, so that we can + produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or + synthesize a press/release pair for KeySyms. + +2001-11-09 Bill Haneman + + * libspi/Makefile.am: + * registryd/Makefile.am: + (temporary) hack to include libXtst in libspi and registryd. + (Needed for keystroke synthesis, see below). + + * idl/Registry.idl: + Improved API for registerKeystrokeListener, in accordance with + discussions with Gnopernicus team and X server research. + + * libspi/registry.c: + * libspi/deviceeventcontroller.c: + * libspi/accessible.c: + * libspi/keystrokelistener.c: + Changes and fixes to support keylisteners for potentially + consumed key events (that is, 'passive grabs'). + Added implementation for generateKeyEvent() [untested]. + + * cspi/spi.h: + Changes to registerKeystrokeListener() API, as above. + Added deregisterGlobalEventListenerAll(), and + deregisterKeystrokeListener(), which are needed for clean exit of + clients. + Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet, + and a macro ALL_KEYS which may be used in place of a KeySet pointer. + + * cspi/spi_registry.c: + Added implementations of function prototypes mentioned above. + + * registryd/registryd.c: + Added the key listener event source as a g_timeout(), to allow + receipt of key events that are not caught by GDK (since GDK + doesn't support passive keygrabs, this was necessary). + + * test/simple-at.c: + Changed to attach a keylistener to 'Alt' keys, and + respond to the following keycommands: Alt-M (toggle magnifier); + Alt-F (toggle speech); Alt-Q (quit). + Added an exit routine to deregister the listeners, and a key + listener that prints some key info to the console when a key + matches the listener mask (and is thus received by the listener). + + * util/idl/Magnifier.idl: + Changes to magnifier API to support multiple zoom regions, + non-uniform scaling in x and y, markDirty, and a host of other + features that would be useful to magnification. + + * util/mag_image.h: + * util/mag_client.c: + * util/mag_client.h: + * util/mag_control.c: + * util/magnifier.c: + Source code changes to support the above IDL changes. + + * util/mag_image.c: + As above, and also changes to use a (slower) generic conversion + path for colormap conversions, since the fast RGB conversions have been + reported to fail for 16-bit displays. + +2001-10-26 Michael Meeks + + * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0 + +<2001-10-26 Laszlo Peter + + * at-bridge/Makefile.am: fix LDFLAGS. + +<2001-10-09 Bill Haneman + + * at-bridge/bridge.c: + Re-worked listeners for toolkit events, now we have signal + and property listeners. Added a private method + register_atk_event_listeners(), which registers with the + various atk and gtk signals we need to monitor in order to emit + our at-spi events. + Added emission hook for AtkObject:property-change events, to + support the 'property listeners'. + Fixed some alloc()s of Accessibility_Event structs to use CORBA + allocation. + + * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev, + which emit warnings and exit, respectively, if CORBA errors occur + during remote calls, and we now use these methods to check most of + our CORBA calls in the C bindings. + + * cspi/spi_accessible.c: + Changed AccessibleSelection_refSelectedChild() to + AccessibleSelection_getSelectedChild(), since all our cspi 'gets' + now increment refcounts. + + * cspi/spi_component.c: + Fixed some long pointer casts (dangerous!) to pass pointers to + CORBA_longs of the proper type to the CORBA stubs, and copy the + data into the longs that were passed into the C bindings code. + + * at-bridge/bridge.c: + + * libspi/accessible.c: + Removed ATK_IS_HYPERLINK() query, since AtkObjects are never + hyperlinks, AtkHyperlink is an object type. + + * libspi/application.c: + Added various conversions to and from "generic" event types and + atk-specific types; this is really part of the 'bridge' + implementation but is valid for all AtkObject-based accessibility + implementations. + + * libspi/editabletext.c: + Fixed nasty bug wherein editable text's finalize method was + unref'ing tha AtkObject reference that the text parent class was + about to unref _again_. There was also a nasty inheritance bug + that meant that the AccessibleEditableText class was corrupt. + + * libspi/selection.c: + Provided implementations for some selection API that was broken. + + * idl/Application.idl: + Added registerObjectEventListener () method. + + * THROUGHOUT: + Fixed a number of return values that were Bonobo_Unknowns from + bonobo_object_corba_objref(), which I + forgot to dup before returning. Changed instances of + bonobo_object_corba_objref (bonobo_object(o)) to + BONOBO_OBJREF(o), for concision and clarity. + +<2001-10-13 Louise Miller + + * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl, + idl/Event.idl, idl/Registry.idl + Changed these files to include Bonobo_Unknown.idl instead + of Bonobo.idl + +<2001-09-10 Marc Mulcahy + + * idl/Accessible.idl: + Added 'isEqual (Accessible *object)' + method for Accessible. (Not Yet Implemented). + + * idl/Registry.idl: + Changed signature of registerKeystrokeListener() to + take a KeySet and KeyEventSeq so that specific keys and event + types could be requested for monitoring, and added a flag + is_synchronous so that either synchronous or asynchronous + notification could be requested. (However this is not all + implemented yet). This also meant adding two new typedefs, + KeyEventSeq and KeySet. + + * idl/Relation.idl: + Added two new relations, RELATION_TOOLTIP_FOR and + RELATION_LEAFNODE_OF. + + * idl/State.idl: + Added new state, STATE_HAS_TOOLTIP. + + * libspi/text.c, editabletext.c: + Added new assertions to all casts of bonobo-objects from + CORBA servants, to prevent Text API calls on non-text objects. + Changed suspect casts of int-pointer types, so that we + always send a valid CORBA_long pointer to the CORBA APIs that use + in/out long parameters. We then have to copy from the CORBA_long + into the regular long or int for return to the C bindings, or + vice-versa when returning parameters from ATK calls to the bonobo wrappers. + + * cspi/spi_text.c: + * libspi/deviceeventcontroller.c: + Cleaned these sources up. + * idl/Text.idl: + Changed return type for getCharacterAtOffset to + CORBA_unsigned_long, to allow for 32-bit characters. + + +<2001-10-08 Bill Haneman + + * util/Makefile.am: + * idl/Makefile.am: + Fixed 'make dist' so that distro compiles... + * libspi/keymasks.h: + new file. + * cspi/spi-listener.c: + KeystrokeListenerCB now returns a boolean. + * cspi/spi.h: + Added KeyEventType struct, and KeyStroke. + Also added createKeystrokeListener(), + KeystrokeListener_addCallback(), + KeystrokeListener_removeCallback(), and added a keymask to + registerKeystrokeListener(). + * cspi/spi_accessible.c: + Changed numerous return types for interfaces from + AccessibleComponent to Accessible; this was + probably a cut-and-paste error. + * cspi/spi_event.c: + Implementations of new KeystrokeListener api (from spi.h, + above). + * idl/Registry.idl: + Changes to key modifier mapping. + Created ControllerEventMask struct. + Made DeviceEventController derive from Bonobo::Unknown. + * idl/Text.idl: + Removed TEXT_BOUNDARY_CURSOR_POS boundary type. + * libspi/deviceeventcontroller.c: + Added a number of new internal (private) methods. + * libspi/editabletext.c: + * libspi/editabletext.h: + Fixed a number of bugs related to the fact that + editabletext inherits from text. Fixed the EditableText struct, + the init() call, and use correct casts when calling Text methods + from an EditableText object. Removed (duplicate) atko from the + EditableText structure, we use the one in the parent Text + structure via the casts mentioned above. + * libspi/keystrokelistener.[ch]: + * libspi/registry.c: + Changes in support of keyboard handling (above). + + Keyboard handling, though partly functional, is still not + recommended for at-spi client use as there is considerable + work yet to be done. + + * libspi/text.c: + Changed some places where pointers to various int types + are cast to be pointers to CORBA_long types and vice-versa: + pointer casting is not safe so we pass pointers of the correct + types and then cast the result before putting it into the target + pointers. + + * libspi/text.h: minor typos corrected. + * test/simple-at.c: + We now speak not only the name of a Text element, but the + first sentence of its content, when it receives focus. + I also changed the text compression to 75% from 50%. + * util/Accessibility_Util.server.in: + Changed the default magnifier type to be a 3x vertical + splitscreen magnifier (was previously a 2x horizontal one). + +<2001-10-03 Bill Haneman + + * libspi/keystrokelistener.h: + * libspi/keystrokelistener.c: + Initial functional implementations of KeystrokeListener. + * idl/Registry.idl: + +<2001-10-05 Marc Mulcahy + + Fixed string handling for NULL strings in libspi. + Added spi_freeString to free strings returned by C bindings. + +<2001-09-30 Bill Haneman + + * libspi/keystrokelistener.h: + * libspi/keystrokelistener.c: + Began (no-op) implementations of KeystrokeListener + (see below). + * libspi/deviceeventcontroller.c: + * libspi/deviceeventcontroller.h: + Began creating implementations of DeviceEventController, + to handle keystroke and mouse event listening and + synthesis. + * libspi/accessible.c: + Stubbed-in the implementations for + Accessibility_Accessible_getState and + Accessibility_Accessible_getRelationSet. + * libspi/registry.c: + Improved de-registration process and fixed some bugs, + deregistration now works correctly. + * libspi/desktop.c: + Added initialization of applications list (to NULL). + * util/magnifier.c: + Reduced speech compression from 0.5 to 0.7, for demo. + Changed call to gdk_window_set_decorations() + to gtk_window_set_decorated(). + * at-bridge/bridge.c: + Bridge now deregisters when app exits, via + registration of a cleanup function + with the g_atexit() call. + Required making 'app' static, renamed 'this_app'. + Fixed broken use of bonobo_init, passing argv wrongly. + +<2001-09-27 Bill Haneman + + * util: + * util/Makefile.am: + Created a new directory for + accessibility-related utilities, primarily for + testing and demo purposes, but with possible + end-user utility. + + * util/magnifier.c: + * util/magnifier.h: + * util/mag_image.c: + * util/mag_image.h: + Onscreen magnifier utility that + is implemented as a bonobo service. + + * util/mag_client.c: + * util/mag_client.h: + Client-side support (simple C bindings) + for Magnification service + + * util/mag_control.c: + Client program example for + Magnification service + + * util/Accessibility_Magnifier.server.in: + Bonobo-activation file for the + Magnification service. + + * util/idl: + * util/idl/Magnifier.idl: + IDL defining the bonobo Magnification + service interface. + + * test/simple-at.c: + Modifications to use the bonobo-activated magnifier + above, in place of trying to connect to an existing + magnifier that uses socket-listening IPC. + + If env variable MAGNIFIER is set, a magnifier service + will be started if one does not exist. + +<2001-09-25 Bill Haneman + * at-bridge/bridge.c: + applied patch from Marc to build and run + against new glib and gtk+ (seemed like a change + to bonobo_init signature was made ?) + * test/simple-at.c: + made festival-server support turned off by default. + Added support for a simple magnifier (off by default) + which will be added to a 'util' directory later. + * at-bridge/Makefile.am: + Changed "application.h" header from a 'source' + to a 'dependency' of libat-bridge. + +<2001-09-12 Marc Mulcahy + * cspi/Makefile.am: + Added spi-util.c. + + * cspi/spi-util.c: + Fixed typo + + * cspi/spi.c: + Added interface implementation c files to list of + includes so they are included in libcspi. + + * cspi/spi.h: + Changed prototype of AccessibleAction_doAction to return a + boolean. + Changed prototype of AccessibleTable_getCaption to + return an Accessible. + Changed prototype of AccessibleTable_getSelectedRows + and AccessibleTable_getSelectedColumns to + return a long (returns the number of selected rows + or columns respectively). + Changed name of AccessibleText_refRunAttributes to + AccessibleText_getAttributes. + Changed prototype of AccessibleText_getCharacterExtents to + return a void rather than a boolean. + Added support for a AccessibleCoordType parameter + specifying what type of coordinates are desired. + Added an AccessibleCordType parameter to + AccessibleText_getPointAtOffset. + + * cspi/spi_accessible.c: + Added code to return the outstanding interfaces from + Accessible_queryInterface. + + * cspi/spi_action.c: + Fixed typos. + Corrected call to getNActions to call the c binding + for an attribute. + + * cspi/spi_editabletext.c: + Fixed typos. + Changed name from setRunAttributes to setAttributes. + + * cspi/spi_hyperlink.c: + Fixed typos. + Changed call to getNAnchors to correctly call the c + binding for an attribute. + + * cspi/spi_hypertext.c: + Fixed typos. + Changed getImageDescription to correctly call the + binding for an attribute. + + * cspi/spi_selection.c: + Changed getNSelectedChildren to correctly call the c + binding for the attribute. + Changed refSelectedChild to getSelectedChild. + + * cspi/spi_table.c: + Fixed typos. + Changed getCaption to return an Accessible. + Fixed calls which retrieve attributes. + Changed refAt to getAccessibleAt. + Changed getNSelectedRows and getNSelectedColumns to + return longs. + + * cspi/spi_text.c: + Changed getCharacterExtents and getPointAtOffset to accept an + AccessibleCoordType. + Fixed typos. + Changed calls which retrieve attributes. + Changed refRunAttributes to getAttributes. + + * cspi/spi_value.c: + Fixed typos. + + * idl/Hyperlink.idl: + Changed n_anchors attribute to nAnchors to keep naming + convention consistent. + + * idl/Table.idl: + Made Table inherit from Bonobo::Unknown. + Added nSelectedColumns and nSelectedRows attributes. + + * idl/Value.idl: + Made Value inherit from Bonobo::Unknown. + + * libspi/hyperlink.c: + Change for nAnchors attributte name change. + +<2001-09-12 Marc Mulcahy + * cspi/Makefile.am: + Added spi-util.c. + + * cspi/spi-util.c: + Fixed typo + + * cspi/spi.c: + Added interface implementation c files to list of + includes so they are included in libcspi. + + * cspi/spi.h: + Changed prototype of AccessibleAction_doAction to return a + boolean. + Changed prototype of AccessibleTable_getCaption to + return an Accessible. + Changed prototype of AccessibleTable_getSelectedRows + and AccessibleTable_getSelectedColumns to + return a long (returns the number of selected rows + or columns respectively). + Changed name of AccessibleText_refRunAttributes to + AccessibleText_getAttributes. + Changed prototype of AccessibleText_getCharacterExtents to + return a void rather than a boolean. + Added support for a AccessibleCoordType parameter + specifying what type of coordinates are desired. + Added an AccessibleCordType parameter to + AccessibleText_getPointAtOffset. + + * cspi/spi_accessible.c: + Added code to return the outstanding interfaces from + Accessible_queryInterface. + + * cspi/spi_action.c: + Fixed typos. + Corrected call to getNActions to call the c binding + for an attribute. + + * cspi/spi_editabletext.c: + Fixed typos. + Changed name from setRunAttributes to setAttributes. + + * cspi/spi_hyperlink.c: + Fixed typos. + Changed call to getNAnchors to correctly call the c + binding for an attribute. + + * cspi/spi_hypertext.c: + Fixed typos. + Changed getImageDescription to correctly call the + binding for an attribute. + + * cspi/spi_selection.c: + Changed getNSelectedChildren to correctly call the c + binding for the attribute. + Changed refSelectedChild to getSelectedChild. + + * cspi/spi_table.c: + Fixed typos. + Changed getCaption to return an Accessible. + Fixed calls which retrieve attributes. + Changed refAt to getAccessibleAt. + Changed getNSelectedRows and getNSelectedColumns to + return longs. + + * cspi/spi_text.c: + Changed getCharacterExtents and getPointAtOffset to accept an + AccessibleCoordType. + Fixed typos. + Changed calls which retrieve attributes. + Changed refRunAttributes to getAttributes. + + * cspi/spi_value.c: + Fixed typos. + + * idl/Hyperlink.idl: + Changed n_anchors attribute to nAnchors to keep naming + convention consistent. + + * idl/Table.idl: + Made Table inherit from Bonobo::Unknown. + Added nSelectedColumns and nSelectedRows attributes. + + * idl/Value.idl: + Made Value inherit from Bonobo::Unknown. + + * libspi/hyperlink.c: + Change for nAnchors attributte name change. + + +<2001-09-05 Marc Mulcahy + + implementations-- made server implementations own AtkObject pointers + rather than their respective AtkInterrface pointers to fix + refcounting. AtkHyperlink is still broken. + +<2001-09-04 Bill Haneman + * cspi/spi_accessible.c: + Added method Accessible_Role_getName(), + and requisite string array (role_names). + Added conversion string_from_corba_strin() call + to Accessible_getName and _getDescription. + * libspi/accessible.c: + Added implementation for Accessible_getRole() + * test/simple-at.c: + Added festival support, used if environment variable + FESTIVAL is set. + +2001-09-04 Bill Haneman + + * at-bridge/bridge.c: + Now allocate Accessibility_Event using + Accessibility_Event__alloc() instead of g_new0(). + * libspi/accessibleeventlistener.c: + Initialize AccessibleEventListener->callbacks to NULL. + Fixed accessible__event_listener_init() param, changed to + "AccessibleEventListener *" type. + Changed a bonobo_object_release_unref() call to + Accessibility_Accessible_unref(). + * libspi/listener.c: + Changed Bonobo_Unknown_unref to (equivalent) + Accessibility_Accessible_unref. + * libspi/registry.c: + Changed bonobo_object_release_unref to + Accessibility_Accessible_unref. + +<2001-09-04 Marc Mulcahy + + * Added files: + spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c + spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c + spi-util.c spi-util.h + Implementations for C bindings to remaining accessibility + interfaces. + +<2001-09-04 Marc Mulcahy + + * idl/Action.idl: + changed return value of Action from void to boolean to + bring in line with ATK. + + * idl/Text.idl: + Changed getText funcions to return "out" start and end offsets. + Changed getAttributes to take and offset and return the start + and end offset of the attribute run. + Changed getOffsetAtPoint and getCharacterExtents to take an + enum describing whether coordinates are window or screen. + + * Added files: + libspi/action.c libspi/action.h libspi/editabletext.c + libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h + libspi/hypertext.c libspi/hypertext.h libspi/image.c + libspi/image.h libspi/selection.c libspi/selection.h + libspi/table.c libspi/table.h libspi/text.c libspi/text.h + libspi/value.c libspi/value.h + Added server implementations for outstanding ATK interfaces + not yet implemented. + +2001-09-04 Bill Haneman + + * idl/Action.idl: + Added (missing) getName() method. + Made nActions an attribute. + * idl/EditableText.idl: + Changed order of params in setAttributes. + * idl/Hyperlink.idl: + Removed getAnchor, added getURI. + * idl/Image.idl: + Changed attributes to methods, for efficiency + (so that getting extents can be done in one call) + * idl/Selection.idl: + Changed nSelectedChildren to attribute, and re-indented. + * idl/Table.idl: changed nrows, ncolumns, caption, summary + to attributes. + * idl/Text.idl: reformatted to match our coding style. + (temporarily?) removed getRowColumnAtOffset(). + Changed text selection API to support multi-select and + non-contiguous selections, as in ATK. + * idl/Value.idl: changed some methods to attributes. + +2001-08-24 Mark McLoughlin + + * libspi/listener.c(impl_notify_event): + BonoboUnkown_unref the source instead + of bonobo_object_release_unref - the ORB + handles the releasing. + + * configure.in: require ORBit-2.3.94 for + this behaviour. + +2001-08-21 Bill Haneman + + Tagged CVS repository 'EA_1_0'. + * README.EARLY_ACCESS: + Alphabetized acknowledgements list, and + added someone. + Listed some known dependencies of at-spi. + +2001-08-20 Bill Haneman + + * docs/at-spi-docs.sgml: + * docs/at-spi-sections.txt: + * docs/at-spi-overrides.txt: (Added zero-length file) + Documentation improvements - gtk-doc should build + docs for all implemented C bindings now. + * cspi/Makefile.am: + * cspi/spi_main.c: + * cspi/spi.c: (New file) + * cspi/spi_event.c: (New file) + * cspi/spi_registry.c: (New file) + * cspi/spi_accessible.c: (New file) + * cspi/spi_application.c: (New file) + * cspi/spi_component.c: (New file) + Split spi_main.c into six parts, and included them from + "spi.c". This is a bit of a hack, probably temporary, + but required by gtk-doc, apparently. + +2001-08-20 Bill Haneman + + * docs/Makefile.am: + * docs/at-spi-docs.sgml: + * docs/at-spi-sections.txt: + * configure.in: + Initial checkins/modifications for gtk-doc generation. + * cspi/spi.h: + * cspi/spi.c: + Added (missing) interface query methods to Accessible's C binding. + * cspi/spi-impl.h: + Added GenericInterface type definition. + * test/simple-at.c: + Added query for AccessibleComponent interface to focus event handler. + Added printout of bounding box for focussed component. + * libspi/component.c: + Added partial implementation for AccessibleComponent to C binding. + * idl/Application.idl: + * libspi/registry.c: + * libspi/listener.c: + * libspi/application.c: + * libspi/application.h: + Changed "ID" attribute type from string to long. + +2001-08-19 Bill Haneman + + * cspi/spi.h: + * cspi/spi.c: + Made method naming consistent: methods taking object args + start with uppercase, other methods (except those using + acronyms) start with lowercase. Underscores delimit between + object names and method names: + SPI_init() - uppercase since it starts with an acronym. + getDesktopCount () - lowercase start since no object param0. + Accessible_getName() - uppercase object type name, studlyCaps method + name. + + *cspi/spi.h: + Added gtk-doc documentation for all currently implemented + methods in the C bindings API. + 2001-08-18 Bill Haneman * Makefile.am : changed build order to build test last. @@ -9,6 +2266,14 @@ * test/Makefile.am : * test/simple-at.c : Added new test that uses the C bindings API. + * idl/Event.idl : + * libspi/listener.c : + * libspi/registry.c : + * libspi/accessibleeventlistener.c : + * at-bridge/bridge.c : + Renamed member "target" of Accessibility_Event to "source", + which is more descriptive. + 2001-08-18 Bill Haneman @@ -181,8 +2446,10 @@ and we now relay those focus events to any "focus:" listeners. This now works with the bridge as a GTK_MODULE when running test/at. * libspi/registry.c : - * libspi/listener.c : now we ref event sources before propagating, and unref on receipt. - * libspi/registry.c : some changes to internal structs, to support event typestring hashes. + * libspi/listener.c : + now we ref event sources before propagating, and unref on receipt. + * libspi/registry.c : + some changes to internal structs, to support event typestring hashes. * text/app.c : changed the way the appname is generated. * cspi : added directory that will hold the C bindings library for non-CORBA/bonobo-savvy clients. @@ -192,10 +2459,6 @@ * idl/Hyperlink.idl : added readonly n_links attribute * idl/Image.idl : changed methods to attributes. - KNOWN PROBLEMS: - poll() fails after a few event notifications, when the number of file descriptors - gets too large. Investigating. - 2001-08-15 Mark McLoughlin * at-bridge/Makefile.am: link against