1 2002-12-10 Bill Haneman <bill.haneman@sun.com>
4 Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
6 2002-12-10 Padraig O'Briain <padraig.obriain@sun.com>
9 (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent()
10 to compare two CORBA_TypeCodes.
11 (cspi_internal_event_add): Silence warning from FORTE compiler.
13 * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to
14 avoid implicit declaration of functions.
16 2002-12-09 Padraig O'Briain <padraig.obriain@sun.com>
18 * atk-bridge/bridge.c:
19 (spi_atk_bridge_init_event_type_consts): Store signal id for
20 active-descendant-changed signal.
21 (spi_atk_register_event_listeners): Add signal listener for
22 active-descendant-changed signal,
23 (spi_atk_bridge_signal_listener): Move code in function
24 spi_atk-signal_emit_event() into this function.
25 Add support for active-descendant-changed
26 Update support for child-changed signal.
27 (spi_bridge_window_event_listener): Silence warning.
29 * libspi/spi_private.[ch]:
30 (spi_init_any_object): Change second parameter from CORBA_Object to
32 Omit call to CORBA_Object_duplicate().
33 Set CORBA_any's _value to CORBA_Object*.
35 2002-12-06 Bill Haneman <bill.haneman@sun.com>
41 (AccessibleEvent_ref, AccessibleEvent_unref):
42 New methods, for persisting an event outside the emission context.
43 Must be used if the new accessor methods are to be called
44 outside of the event listener's callback.
46 * cspi/bonobo/cspi-bonobo.c:
47 (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
48 as second parameter instead of NULL, so we can call
49 cspi_check_ev afterwards.
52 (cspi_object_take): New internal method,
53 converts a CORBA_Object reference to a hard ref on
54 an Accessible if possible, returning NULL if the object
55 reference is invalid or an Accessible * otherwise.
58 (AccessibleEvent_ref):
59 Increment the event's internal private refcount, and
60 add the event's internal struct to an internal cache
61 if it's not already there.
62 (AccessibleEvent_unref):
63 Decrement the event's refcount and remove it from
64 the cspi event cache if refcount==0.
65 (cspi_event_compare): New private method.
66 Compares two event structs via their ids. Used
68 (cspi_internal_event_lookup): New private method.
69 (cspi_internal_event_check): New private method,
70 a 0-order sanity check for events to make sure their
71 private data is intact.
72 (cspi_internal_event_add, cspi_internal_event_remove):
73 New private methods for managiing the event cache.
75 * cspi/bonobo/cspi-bonobo-listener.c:
77 Initialize the new private data elements (id, magic, ref_count).
79 * atk-bridge/bridge.c:
80 (spi_atk_bridge_signal_listener):
81 Fixed bug #100530, passing wrong params to emission func.
83 * registryd/deviceeventcontroller.c:
84 (spi_dec_button_update_and_emit):
85 Fixed type in mask bit operations; fix for #99799.
87 2002-12-02 Bill Haneman <bill.haneman@sun.com>
89 Removed some of the more dangerous workarounds from
90 previous commit; they are only needed by GOK, which
91 in reality should be using another method to accomplish
92 the goals. So on reconsideration some of the workarounds
95 * registryd/deviceeventcontroller.c:
96 (spi_keycodes_contain, spi_dec_init_keycode_list):
97 Removed these methods, used only by a nasty hack to try
98 and detect whether a key synthesis should be allowed
99 to reset the XKB latch state or not. This code was only
100 required to work around an interaction between GOK,
101 button events, and XKB.
102 (impl_generate_key_event):
103 Removed hack at end of key generation that tried to
104 "do the right thing" if XKB latch keys were generated
105 in the midst of button press/release pairs.
108 Added a check for HAVE_XINPUT. Not normally used yet.
110 2002-11-25 Bill Haneman <bill.haneman@sun.com>
112 Workarounds and fixes for mouse event/XKB interaction.
114 * registryd/deviceeventcontroller.c:
115 (spi_keycodes_contain, spi_dec_init_keycode_list):
116 New internal methods.
117 (spi_dec_set_unlatch_pending):
118 Split the method that tells XKB to expect an
119 unlatch (and revert it) out of the rest of the
120 event handling code. This method is called by the
121 two mouse event handlers (the poll and the filter).
122 (spi_dec_update_and_emit, spi_dec_mouse_check):
123 New methods split from spi_dec_poll_mouse_moved.
124 The second one is now called from inside the filterFn
125 when an XKB delatch event is received, to determine
126 whether to revert the delatch or not.
127 (spi_poll_mouse_moved): Refactor; also we can now
128 properly handle the case where multiple button states
129 have changed between polling cycles and we didn't get
130 notified due to another client's grab.
132 Synchronize the server while handling an XKB notification.
133 Ugly, but apparently necessary to avoid nasty races.
134 Check the mouse state on receipt of an XKB latch change,
135 to decide whether to revert the latch or not. (Latches are
136 reverted if there is an immediately preceding mouse button
137 event that a client has consumed, in which case we don't want
138 the user to see the side-effect of the event).
139 (spi_device_event_controller_forward_mouse_event):
140 Check for modifier events and fire before resetting mouse_mask_state,
141 prevents losing modifier events.
143 (impl_generate_keyboard_event):
144 If we've just generated a keyboard event for a non-shift key,
145 we don't want to revert the pending XKB latch.
146 Otherwise, check the modifier state (via a call to
147 spi_dev_mouse_check) and set the relatch mask to
148 that state before returning.
150 2002-11-24 Bill Haneman <bill.haneman@sun.com>
153 Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
156 * atk-bridge/bridge.c:
157 (spi_atk_register_event_listeners):
158 Don't re-register for ATK events if the registry has died
159 and the app needs to re-register; the ATK listeners are in
160 process and doing so will cause duplicate emission.
162 * registryd/deviceeventcontroller.c:
163 (spi_poll_mouse_moved):
164 Reformat the source, detect and emit multiple button-change
165 events (i.e. if multiple buttons have changed between poll
167 Add code to detect mouse-down events even when the pointer
168 is grabbed; workaround for GOK bug 98420.
169 (spi_controller_register_with_devices):
170 Call XTestGrabControl with 'impervious' flag set to True,
171 allows us to synthesize events and query the pointer even during
172 an active grab by another client.
173 (spi_device_event_controller_forward_mouse_event):
174 Set the mouse_mask_state to the mouse_button_state from
175 the intercepted event, to synchronize the grab listener with
178 2002-11-20 Bill Haneman <bill.haneman@sun.com>
180 * cspi/spi_accessible.c:
181 (AccessibleRole_getName):
182 Added necessary strings for making this (deprecated)
183 method work with the new role types.
184 (init_role_table, role_table):
185 Added definition of SPI_ROLE_APPLICATION.
187 * libspi/spi-roletypes.h:
188 Added SPI_ROLE_APPLICATION.
190 * idl/Accessibility_Role.idl:
191 Added ROLE_APPLICATION.
193 * docs/reference/cspi/at-spi-cspi-decl.txt:
194 Added SPI_ROLE_APPLICATION to docs.
196 2002-11-20 Padraig O'Briain <padraig.obriain@sun.com>
198 * cspi/spi_accessible.c
199 (cspi_init_role_table): Do not write beyond end of role_table.
200 (Accessible_getRole): Use correct type for value returned by
201 Accessibility_Accessible_getRole().
203 * libspi/accessible.c (spi_init_role_lookup_table): Do not write
204 beyond end of role_table. (This fixes bug #98269)
206 * libspi/application.c: Add include file spi-private.h for
207 definition of spi_init_any_nil.
209 2002-11-19 Bill Haneman <bill.haneman@sun.com>
213 * libspi/spi-private.h:
214 Added DGB() macro, and extern int _dbg declaration.
216 * registryd/registry.c:
217 (definitions) storage for _dbg.
219 Get environment variable "AT_SPI_DEBUG".
220 (spi_registry_set_debug):
221 New method, to initialize _dbg value.
222 (spi_listener_struct_new, spi_registry_object_finalize):
223 (notify_listeners_cb):
224 Changed fprintfs to use DBG and g_warning().
226 * registryd/deviceeventcontroller.c:
227 (_deregister_keygrab, spi_controller_register_device_listener):
228 Changed debug/warning messages to use DBG macro.
232 Changed warning messages to use DBG macro and g_warning().
234 * atk-bridge/bridge.c:
235 (atk_bridge_init, spi_atk_bridge_get_registry):
236 (spi_atk_bridge_exit_func):
237 (spi_atk_bridge_property_event_listener):
238 Changed status, warning, and error messages to use
239 g_warning, g_message, and DBG macros.
242 Read the state of the AT_SPI_DEBUG environment variable
243 and set a local '_dbg' accordingly.
245 2002-11-19 Bill Haneman <bill.haneman@sun.com>
247 FIXES for 98836, 98842, other bugs.
250 Revved to 1.1.4, interface-age=4, binary-age=4.
252 * registryd/deviceeventcontroller.c:
254 Fixed crasher bug in last_mouse_pos initialization.
256 * registryd/registry.c:
257 (desktop_add_application, desktop_remove_application):
258 Added (and then commented out) some support for
259 object context marshalling. [TODO]
261 * atk-bridge/bridge.c:
262 (spi_atk_bridge_event_context_create):
263 Commented out object context creation until it can
264 be properly tested and debugged.
266 * registryd/registry.c:
267 (impl_registry_notify_event):
268 Fixed crasher bug, we were calling
269 spi_re_entrant_list_foreach () with an empty list.
271 2002-11-18 Bill Haneman <bill.haneman@sun.com>
273 * idl/Accessibility_Action.idl:
274 * idl/Accessibility_Component.idl:
275 * idl/Accessibility_Desktop.idl:
276 * idl/Accessibility_Event.idl:
277 * idl/Accessibility_Hyperlink.idl:
278 * idl/Accessibility_Image.idl:
279 * idl/Accessibility_Relation.idl:
280 * idl/Accessibility_Selection.idl:
281 * idl/Accessibility_State.idl:
282 * idl/Accessibility_Value.idl:
283 Updated unimplemented slot count to minimum of
284 four for all interfaces, for ABI freeze.
286 * idl/Accessibility_EditableText.idl:
287 * idl/Accessibility_Text.idl:
288 Updated unimplemented slot count to six
291 * idl/Accessibility_Registry.idl:
292 Updated unimplemented slot count to six
293 (also for DeviceEventController),
296 * idl/Accessibility_Table.idl:
297 Updated unimplemented slot count to eight,
300 * idl/Accessibility_Event.idl:
301 Added CORBA_any "any_data" member to Event struct.
303 * idl/Accessibility_Event.idl:
304 Added CORBA_any "any_data" member to Event struct.
306 * atk-bridge/bridge.c:
308 atk_signal_text_changed, atk_signal_child_changed,
309 signal ids queried from gtype system.
310 (AtkBridgeEventContextType): New enum.
311 (AtkBridgeEventContextData): New struct.
312 (AtkBridgeEventContext): New struct.
313 (atk_bridge_init_event_type_consts):
314 New method, initializes type contants for comparison
315 prior to emit_eventv.
316 (atk_bridge_event_context_init): New method,
317 initializes a CORBA_any from an AtkBridgeEventContext.
318 (atk_bridge_focus_tracker): Call spi_init_any_nil to
319 initialize the event.any_data struct.
320 (spi_atk_bridge_event_context_create): New method,
321 creates an AtkBridgeEventContext from signal/event info.
322 (spi_atk_bridge_event_context_free): New method.
323 (spi_atk_emit_eventv): Changed to take an
324 AtkBridgeEventContext parameter. We now initialize
325 the event.any_data member prior to notifying the
326 Registry, via the AtkBridgeEventContext.
327 (spi_atk_bridge_property_event_listener):
328 (spi_atk_bridge_state_event_listener):
329 Match emit_eventv signature.
330 (spi_atk_bridge_object_event_listener):
331 Match emit_eventv signature, and create an
332 event context from the event details.
333 Free the event context afterwards.
334 (spi_atk_bridge_window_event_listener):
335 Create an event context, pass it to the
339 (AccessibleEvent_getContextString):
340 (AccessibleEvent_getContextObject):
341 New methods, allow query of AccessibleEvent objects
342 for more context details (via the "any_data" member
343 of the Event struct, above).
346 Definitions for AccessibleEvent_getContextString
347 and AccessibleEvent_getContextObject.
349 * cspi/spi_listener.h:
350 (InternalEvent): New struct.
353 (AccessibleEvent_getContextString):
354 (AccessibleEvent_getContextObject):
355 Implementations of new methods, for obtaining
356 additional context information from some event types.
358 * cspi/spi_registry.c:
359 (SPI_registerGlobalEventListener):
360 Added mention of active-descendant-changed event in docs.
362 * cspi/cspi-bonobo-listener.c:
364 Marshal the any into the AccessibleEvent via
367 * libspi/spi-private.h:
368 #include <orbit/orbit.h>
370 (spi_init_any_string):
371 (spi_init_any_object):
372 New convenience function declarations.
376 (spi_init_any_string):
377 (spi_init_any_object):
378 New convenience function implementations.
380 * registryd/deviceeventcontroller.c:
381 (spi_poll_dec_mouse_moved):
382 (spi_device_event_controller_forward_mous_event):
383 Initialize any_data member of event.
384 (spi_deregister_controller_device_listener):
385 Fix incorrect param pass which was preventing deregistration.
387 * registryd/registry.c:
388 (desktop_add_application):
389 (desktop_remove_application):
390 Add object data to event's any_data before dispatch.
392 Fix for error messages from GAIL.
394 * test/event-listener-test.c:
395 Test new ContextString and "any_data" API:
396 (report_text_event): New method query and output context string.
397 (main): register a new text listener with report_text_event
400 2002-11-19 Darren Kenny <darren.kenny@sun.com>
402 Fixes for bugs 98127 and 97914.
403 * cspi/spi-roletypes.h:
404 Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
406 * cspi/spi-statetypes.h:
407 Added SPI_STATE_MANAGES_DESCENDANTS
409 Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
410 SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
411 * cspi/spi_accessible.c:
412 Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
413 Added mapping from SPI_STATE_MANAGES_DESCENDANTS to
414 Accessibility_STATE_MANAGES_DESCENDANTS
415 * libspi/accessible.c:
416 Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
417 Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER}
418 As requested by Bill, I also cleaned up the alignment.
420 Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
421 EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
423 Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
424 Accessibility_STATE_MANAGES_DESCENDANTS
425 * docs/reference/cspi/tmpl/spi_accessible.sgml:
426 Document changes reflecting modifications to roles.
427 * docs/reference/cspi/tmpl/spi_relation.sgml:
428 Document changes reflecting modifications to relations.
429 * docs/reference/cspi/tmpl/spi_stateset.sgml:
430 Document changes reflecting modifications to states.
432 2002-11-17 Bill Haneman <bill.haneman@sun.com>
435 Revved to 1.1.3, interface-age=3, binary-age=3.
439 Removed accessx-gui from the tests, since we have a nice
440 keyboard accessibility capplet now :-)
442 * test/keysynth-demo.c:
443 (increment_scan): removed do-nothing default: case,
446 * test/visual-bell.c:
447 (main) : removed do-nothing default: case,
451 (AccessibleAction_getKeyBinding_):
452 Documented keybinding string format.
456 (AccessibleText_getAttributes):
457 Documented the text attribute string format.
458 It's changed to use semicolon delimiters also,
459 to prevent clashes with CSS attributes, but the old
460 trick of looking for ", " strings will still work
461 (as unreliably as ever). Fix for bug related to 97916.
464 Include <cspi/bonobo/cspi-bonobo-listener.h>
466 (SPI_freeAccessibleKeySet):
467 (AccessibleKeystrokeListener_addCallback):
468 (AccessibleKeystrokeListener_removeCallback):
469 Modify to use AccessibleDeviceListener API internally,
470 instead of AccessibleKeystrokeListener.
472 * idl/Accessibility_Event.idl:
473 Added two more empty slots to EventListener (for a total of four).
475 * idl/Accessibility_Accessible.idl:
476 Added four empty slots to Accessible interface.
478 2002-11-15 Bill Haneman <bill.haneman@sun.com>
480 * idl/Accessibility_Registry.idl:
481 (KeyEventType, EventType):
482 Marked KeyEventType as deprecated; it duplicates
483 functionality of EventType, which has been extended to
484 include Mouse-button events.
485 (KeyEventTypeSeq): defined in terms of EventType.
486 (registerDeviceEventListener, deregisterDeviceEventListener):
487 New methods, for managing listeners to device events,
488 which potentially may consume them.
491 Added definition for AccessibleDeviceListener.
493 * cspi/spi-listener.h:
494 (enum AccessibleDeviceEventType):
495 Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
496 Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
497 for backwards compat.
498 (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
499 and typedef'd AccessibleKeystroke to it for back-compat.
500 (AccessibleDeviceListenerCB):
501 New function prototype typedef.
504 (AccessibleDeviceEventMask): New typedef.
505 (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
506 (AccessibleKeyMaskType):
507 Set equivalent to AccessibleModifierMaskType for back-compat.
508 (SPI_createAccessibleKeystrokeListener):
509 (AccessibleKeystrokeListener_unref):
510 Deprecated in favor of equivalent (better-named) new API below..
511 keystroke listeners are like all device listeners.
512 (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
513 New API names for old features :-).
514 (AccessibleDeviceListener_addCallback):
515 (AccessibleDeviceListener_removeCallback):
516 (SPI_registerDeviceEventListener):
517 (SPI_deregisterDeviceEventListener):
521 (SPI_createAccessibleKeystrokeListener):
522 Use new preferred API, cspi_device_listener_new() and
523 cspi_device_listener_add_cb().
524 (AccessibleKeystrokeListener_removeCallback):
525 Use new preferred API, cspi_device_listener_remove_cb().
526 (AccessibleKeystrokeListener_unref):
527 Use new preferred API, cspi_device_listener_unref().
528 (SPI_createAccessibleDeviceListener):
529 (AccessibleDeviceListener_addCallback):
530 (AccessibleDeviceListener_removeCallback):
531 Implementation of new API.
533 * cspi/spi_registry.c:
534 (SPI_registerDeviceEventListener):
535 (SPI_deregisterDeviceEventListener):
536 Implementation of new API. Fixed memory leak and removed need to
537 allocate EventTypeSeq (thanks Michael for catching this).
538 Squashed a wayward CORBA_exception_free that shouldn't get called.
540 * cspi/bonobo/cspi-bonobo-listener.c:
542 Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
543 (cspi_key_event): renamed to cspi_device_event().
544 Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
545 Extended to handle mouse button events as well as key events.
546 (CSpiKeystrokeListener):
547 Class superceded by CSpiDeviceListener.
548 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
549 These internal APIs changed to "*device_listener" from "*keystroke_listener".
551 * cspi/bonobo/cspi-bonobo-listener.h:
552 (CSpiKeystrokeListener):
553 Class superceded by CSpiDeviceListener.
554 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
555 These internal APIs changed to "*device_listener" from "*keystroke_listener".
557 * libspi/Makefile.am:
558 Replaced keystrokelistener.h and keystrokelistener.c
559 with devicelistener.h and devicelistener.c; keystrokelisener.h
560 stub retained for back-compat.
562 * libspi/keystrokelistener.c:
566 Replaced inclusion of keystrokelistener.h with devicelistener.h.
568 * registryd/deviceeventcontroller.c:
569 (DEControllerListener): Added Accessibility_EventTypeSeq member.
570 (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
571 (DEControllerPrivateData): Added xkb settings data.
572 (spi_dec_poll_mouse_moved): Changed to dispatch device events for
573 button release events (which can't be captured via XGrabButton).
574 Don't dispatch via the 'normal' event mechanism if the device event was
576 (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
577 Handle the typeseq data in its new location (see above).
578 (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
579 New methods, for "generic" device listeners.
580 (spi_controller_register_device_listener):
581 Now handle mouse event listeners as well as key listeners.
582 (spi_controller_notify_mouselisteners):
584 (spi_device_event_controller_forward_mouse_event):
585 Now we notify mouse device listeners as well as generating the
586 non-consumable "mouse:" events.
588 We must check and restore the XKB
589 modifier map if we consume the event, since the act of triggering
590 a mouse event will normally reset the XKB latch. This is required for
592 (spi_controller_register_with_devices):
593 Load the XKB settings when registering, and register for XKB
595 (spi_key_eventtype_seq_contains_event):
596 Renamed spi_eventtype_seq_contains_event, since it's used
597 internally for all device event types now.
598 (spi_key_event_matches_listener):
599 Uses spi_eventtype_seq_contains_event now.
600 (spi_device_event_controller_object_finalize):
601 Free the private data and the XkbKeyboard struct.
602 (impl_register_device_listener, impl_deregister_device_listener):
603 Implementation of new IDL.
604 (spi_deregister_controller_device_listener):
606 (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
607 More efficient implementation, we don't have to create a new
608 XkbControls structure every time we query.
609 (spi_device_event_controller_class_init):
610 Initialize the epv entries for the new IDL. Assign the
611 "spi-dec-private" quark.
612 (spi_device_event_controller_init):
613 Initialize the private data.
614 (spi_device_event_controller_forward_key_event):
615 Removed a bogus CORBA_exception_free() call.
617 * registryd/deviceeventcontroller.h:
618 Replaced inclusion of keystrokelistener.h with
621 * test/event-listener-test.c:
622 (report_mouse_event):
625 Added mouse-event device listener.
627 * test/test-simple.c:
628 (create_test_window):
629 Fixed regression (we were instantiating a GtkRange,
630 which is now an abstract class). Also fixed to match
631 existing AtkRole names, this seems to have changed in ATK
632 awhile ago; too late now I think, and the new
633 mechanism is at least elegant and consistent with the
634 glib enum "nick" APIs.
636 2002-11-15 Darren Kenny <darren.kenny@sun.com>
638 * idl/Accessibility_Relation.idl:
639 add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
640 RELATION_EMBEDS,RELATION_EMBEDDED_BY
641 * idl/Accessibility_Role.idl:
642 add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
643 * idl/Accessibility_State.idl:
644 add STATE_MANAGES_DESCENDANTS
645 * test/event-listener-test.c:
646 Added a listener for active-descendant events.
648 2002-11-15 Padraig O'Briain <padraig.obriain@sun.com>
650 * atk-bridge/bridge.c
651 (atk_bridge_init): If application is Bonobo component wait until top
652 level is added before registering
653 (spi_atk_bridge_do_registration): New function which contains code,
654 formerly in atk_bridge_init, to do application registration.
655 (spi_atk_bridge_toplevel_added): Signal called when top level
656 added to Bonobo component
658 This fixes bug #83134.
660 2002-10-23 Vitaly Tishkov <tvv@sparc.spb.su>
662 * registryd/deviceeventcontroller.c
663 Fixed compilation error caused by calling gettimeofday()
666 2002-10-18 Bill Haneman <bill.haneman@sun.com>
671 Added template for HAVE_XKB.
674 Changes to check for XKB, and to set the HAVE_XKB #define if it
678 ()impl_notify_event): Make failure to get event source name
681 * registryd/deviceeventcontroller.c:
682 (#include): include X11/XKBlib.h.
683 (DEControllerPrivateData) : New struct.
684 (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) :
686 (dec_synth_keycode_press) (dec_synth_keycode_release):
687 New methods; split the key synthesis code into these methods.
688 They check XKB settings before determining the "time" values to
689 pass to Xtest; this fixes bug #95828.
690 (impl_generate_keyboard_event): Changed to use methods above,
691 instead of callng Xtest directly.
692 (spi_device_event_controller_init): Initialize new privae struct s
694 (spi_device_event_controllr_object_finalize):
695 Free the (new) private data.
697 * registryd/deviceeventcontroller.h:
698 Add new gpointer to end of struct data.
700 2002-10-16 Bill Haneman <bill.haneman@sun.com>
703 Incremented revision to 1.1.2, SONAME is still '.so', library
704 extensions are ".so.0.0.2".
706 * registryd/deviceeventcontroller.c:
707 FIXES FOR #93592 and #95940.
708 (statics): renamed mouse_button_state to mouse_mask_state,
709 added key_modifier_mask.
710 (spi_dec_poll_mouse_moved):
711 Added key modifier checks, and emit "keyboard:modifiers"
712 events when the key modifiers currently in use change.
713 Also generate "mouse:abs" events periodically, even if the mouse
714 is stationary (should we?).
715 Alternatively we could generate "mouse:abs" events for either all
716 mouse movements, or every 'nth' mouse movement, or at the
717 beginning and end of every "active" mouse period.
719 * test/event-listener-test.c:
720 (main): Added listener for "keyboard:modifiers" events.
722 2002-10-15 Bill Haneman <bill.haneman@sun.com>
725 Added key mask #defines for mouse buttons; e.g.
726 SPI_KEYMASK_BUTTON1, etc.
729 Incremented dependency on ATK to version 1.1.0. (This dependency
730 is probably premature but will soon be real enough).
732 2002-10-11 Padraig O'Briain <padraig.obriain@sun.com>
734 * libspi/hyperlink.[ch]
735 (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
736 (get_hyperlink_from_servant): Check object is AtkHyperlink not
739 * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
744 2002-10-10 Padraig O'Briain <padraig.obriain@sun.com>
746 * registryd/deviceeventcontroller.c
747 (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
748 events to be ignored.
749 (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
750 keyboard_mode so that XAllowEvents() can be called.
754 2002-10-08 Padraig O'Briain <padraig.obriain@sun.com>
756 * cspi/spi-accessible.c: Correct names of roles returned by
757 AccessibleRole_getName(). Fixes bug #95055.
759 2002-10-03 Padraig O'Briain <padraig.obriain@sun.com>
761 * cspi/spi_main.c (report_leaked_ref): Report address of leaked
764 * registryd/registry.c
765 (desktop_remove_application: Write diagnostic message to stderr for
768 (impl_accessibility_registry_deregister_global_event_listener):
769 Correct size of lists array. This addresses bug #94555).
771 2002-09-24 Padraig O'Briain <padraig.obriain@sun.com>
773 * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
776 2002-09-19 Padraig O'Briain <padraig.obriain@sun.com>
778 * registryd/Makefile: Add CLEANFILES so that .server file is removed
781 * registryd/registry.c (impl_registry_notify_event): Remove
782 unnecessary call to parser_event_type().
784 * docs/reference/cspi/tmpl/spi_component.sgml:
785 Add reference to SPI_LAYER_WINDOW.
787 2002-09-17 Padraig O'Briain <padraig.obriain@sun.com>
789 * registryd/registry.c
790 (desktop_add_application): Remove leak.
791 (desktop_remove_application): Remove leak.
792 (parser_event_type): Remove leak.
794 2002-09-16 Padraig O'Briain <padraig.obriain@sun.com>
796 * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
797 bogus call to CORBA_string_dup(). Also removed unnecessary
798 g_string_dup/g_free calls.
800 2002-09-13 Bill Haneman <bill.haneman@sun.com>
802 * registryd/deviceeventcontroller.c:
803 spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
805 * test/event-listener-test.c:
806 main: commented out three redundant listeners, to reduce output
807 noise. (They still are potentially useful for testing).
810 2002-09-13 Michael Meeks <michael@ximian.com>
812 * Update all the copyrights to include Ximian.
814 2002-09-06 Mark McLoughlin <mark@skynet.ie>
816 * cspi/spi.h: add SPI_LAYER_WINDOW.
818 * cspi/spi_component.c: (AccessibleComponent_getLayer):
819 add Accessibility_LAYER_WINDOW case.
821 * idl/Accessibility_Component.idl: add LAYER_WINDOW.
823 * libspi/component.c: (impl_accessibility_component_get_layer):
824 add ATK_LAYER_WINDOW case.
826 2002-08-28 Bill Haneman <bill.haneman@sun.com>
828 * configure.in: incremented micro version.
830 * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
832 2002-08-20 Bill Haneman <bill.haneman@sun.com>
835 Clarified and reworded our commit policy.
838 Started an API "todo" addition list for 2.2.
842 Free char pointer from atk_text_get_selection, which was being leaked.
844 2002-08-19 Bill Haneman <bill.haneman@sun.com>
847 Small revision to author acknowledgement.
849 2002-08-19 Padraig O'Briain <padraig.obriain@sun.com>
851 * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
852 If signal has detail add it to the type of the event.
855 2002-08-12 Michael Meeks <michael@ximian.com>
857 * test/test-simple.c (global_listener_cb): bin bogosity.
858 (test_keylisteners): disable, still doesn't work reliably,
859 certainly not on my system anyway.
861 * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
862 don't leak a reference on the DEC. This round-trip
863 fetching of the DEC per keystroke sucks, it should be
866 * cspi/spi-private.h,
867 * cspi/cspi-lowlevel.h,
868 * cspi/bonobo/cspi-bonobo-listener.[ch],
869 * cspi/bonobo/cspi-bonobo.c: get the copyright
870 notices better - there is still a large amount of
871 work in at-spi falsely attributed solely to Sun.
873 * cspi/spi_main.c (cspi_object_ref): kill bogus
874 hash lookup, just increment the ref.
875 (SPI_freeString): make explicit the fact that we
876 handle NULL strings just fine.
877 (report_leaked_ref): obey coding standards.
878 (cspi_object_hash, cspi_object_equal): kill retval.
879 (cspi_object_release): only release if not on loan.
880 (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
881 (cspi_object_borrow, cspi_object_return): impl.
883 * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
884 use cspi_object_borrow / return.
886 2002-08-12 Darren Kenny <darren.kenny@sun.com>
888 * cspi/bonobo/cspi-bonobo-listener.c:
890 Don't call cspi_oject_new() because this is creating a new Accessible
891 every single time that an event is fired. This causes ATs like at-poke
892 to nolonger recognise the source of the event and thus ignore it.
893 Re-use the object from the cache, ref it and then unref it after the
894 listeners have been called.
896 2002-08-06 Darren Kenny <darren.kenny@sun.com>
898 * test/event-listener-test.c:
899 Added command-line options to disable mouse events (m) and
902 2002-07-31 Padraig O'Briain <padraig.obriain@sun.com>
904 * configure.in: Update required versions of ATK, GTK+ and GAIL
906 * cspi-1.0.pc.in: Add dependency for X include files
909 * cspi/bonobo/Makefile.am:
910 Add $(X_CFLAGS) so that X include files
911 are picked up even if not in standard place (bug #71686)
913 2002-06-25 Bill Haneman <bill.haneman@sun.com>
915 * registryd/deviceeventcontroller.c: fix for 84261
916 (spi_dec_mouse_moved):
917 Added test of mouse button mask, so that we can detect mouse
918 button release. Unfortunately we can't otherwise detect mouse
919 button release events without consuming the mouse press event,
920 because of the way XGrabButton works. This means that our mouse
921 release events have a latency dependent on the polling period
922 while the mouse button is down. At least in this case we only
923 have to poll while the button is down, and not at other times.
924 If the button masks don't match with what the last press event
925 reported, we report the appropriate button release event.
926 (spi_dec_ungrab_mouse):
927 New method (not yet called).
928 (spi_device_event_controller_forward_mouse_event):
929 New method, sends mouse press event from GdkFilter.
930 (spi_dec_init_mouse_listener):
931 Added code to call XGrabButton, redirecting mouse button events to
932 the root window and our Gdk event loop.
934 Added code to filter mouse button events, and reordered.
936 * test/event-listener-test.c:
938 Added registration for mouse events of type "mouse:button".
940 2002-06-25 Bill Haneman <bill.haneman@sun.com>
942 * registryd/deviceeventcontroller.c: partial fix for 84261
943 (spi_dec_poll_mouse_idle):
944 New method, a timeout which checks to see if the mouse
946 (spi_dec_poll_mouse_moving):
947 A timeout to be called when mouse motion is underway.
948 (spi_dec_poll_mouse_moved):
949 A method which fires an event if the mouse has moved, and reports
950 whether or not it did so.
951 (spi_dec_init_mouse_listener):
952 A method which sets up the timeouts above.
953 (spi_device_event_controller_new):
954 Now calls spi_dec_init_mouse_listener.
956 * registryd/registry.c:
958 Now we initialize the device event controller when the registry is
959 initialized, instead of waiting until a client has requested a key
960 event notification; this is because we need the event controller
961 for mouse events, but the mouse event registration API is a
962 "registry" call and doesn't explicitly call the
963 deviceeventcontroller.
964 We now report mouse motion events with a 100 ms idle latency and
965 a 20 ms granularity when motion is in progress.
967 * test/event-listener-test.c:
969 We now register the "detail listener" for events of type
970 "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
971 delivered only for the first mouse event received, and thereafter
972 "mouse:abs" events are delivered.)
974 * cspi/spi_registry.c:
975 DOCS: Documented the above mouse event typestrings.
977 2002-06-21 Bill Haneman <bill.haneman@sun.com>
979 Happy Summer Solstice...
981 * registryd/deviceeventcontroller.c: [fix for bug 84100]
982 (spi_controller_notify_keylisteners):
983 Changes to remove a listener from the listener list, freeing its
984 open keygrabs, if a notification to that listener fails. This
985 means that although a dead listener can continue to hold a passive
986 keygrab, a maximum of one dispatch to such a listener can fail
987 before the listener is removed from the list, thus the keygrab
988 will be released on the next occurrence.
990 (spi_notify_keylisteners):
991 Renamed to spi_controller_notify_keylisteners, as the controller
992 instance must now be passed as an argument.
993 The copied 'notify' GList is now a list of DEControllerKeyListener
994 objects, since we need more than just the CORBA reference if a
995 notify fails and we need to deregister the listener.
996 (impl_notify_listeners_sync):
997 (impl_notify_listeners_async):
998 (spi_device_event_controller_forward_key_event):
999 Modify use of notify_keylisteners in accordance with above
1001 (spi_deregister_controller_key_listener):
1002 New method introduced by refactoring, from
1003 impl_deregister_keystroke_listener.
1004 (impl_deregister_keystroke_listener):
1005 Call spi_deregister_controller_key_listener.
1006 (spi_key_listener_clone):
1007 New method to copy a key listner without doing a 'ref' on the
1008 remote object instance; used to create a notifier list.
1009 (spi_key_listener_data_free):
1010 New method, frees data without unreffing the source.
1012 (spi_key_listener_clone_free): new method.
1013 (spi_key_listener_free):
1014 refactored to call spi_key_listener_data_free.
1016 2002-06-20 Bill Haneman <bill.haneman@sun.com>
1018 * registryd/registry.c: [fix for bug 86048]
1019 (notify_listeners_cb):
1020 Clear CORBA system exceptions which occur when notifying
1021 listeners, before returning to the source of the original event,
1022 since the event source doesn't care if the relayed notify failed.
1023 In other words, don't complain to the atk-bridge if the registry
1024 could not notify all its listeners, that's no fault of the
1025 application and thus should not appear to be an error from the
1026 application's perspective.
1028 * cspi/spi_main.c: [fix for bug 85980]
1030 Replaced use of bonobo_object_dup_ref with call to the wrapper
1031 method, csou_dup_ref (); this silences a compiler warning and
1032 provided more portability.
1034 Ping the registry before return, and restart if necessary.
1036 * cspi/bonobo/cspi-bonobo.c:
1038 New internal method.
1040 Fixed this method to return an object reference, as it should have
1043 * cspi/cspi-lowlevel.h:
1044 Added internal definition for cspi_ping() and fixed
1045 return type of cspi_dup_ref().
1048 2002-06-19 Bill Haneman <bill.haneman@sun.com>
1050 * atk-bridge/bridge.c: [fix for bug 85305]
1051 (spi_atk_bridge_register_application):
1052 New method where the initial application registry calls have been
1053 moved; it allows an application to re-register in response to
1054 certain error conditions (such as a registry restart, see below).
1056 Moved some initialization code to the method
1057 spi_atk_bridge_get_registry, below.
1058 (spi_atk_bridge_get_registry):
1059 New, private accessor function for the Accessibility_Registry
1060 instance. If the registry has not been started before, or has
1061 died (as detected by failure of a CORBA exception), it is
1062 restarted before return, and spi_atk_bridge_register_application
1063 is called again to register with the new bridge instance.
1064 (spi_atk_emit_eventv):
1065 Set registry_died on error; use spi_atk_bridge_get_registry () to
1066 access the registry.
1068 * registryd/registry.c:
1069 (impl_accessibility_registry_register_global_event_listener):
1070 Set listener's event_type_quark to etype.minor instead of
1071 etype.major (fix for bug 84856).
1073 * test/event-listener-test.c:
1074 (report_detail_event):
1075 Change the output string so that user/tester can tell that the
1076 'detail listener' was called instead of the 'generic listener'.
1078 2002-06-18 Bill Haneman <bill.haneman@sun.com>
1080 Fixes for bugs 84900, 84908, 84897, 84898.
1085 Revved version to 1.1.0
1086 (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1087 version is going to HEAD which will be used for gnome-2-0-1 and later.)
1089 * idl/Accessibility_Registry.idl:
1090 (EventListener::notifyEvent):
1091 Removed 'oneway' directive after extensive consulation with
1092 ORBit2 team and others. This means also that unref() of the event
1093 source can and should be done synchronously after emission, rather
1094 than remotely in the client, after servicing the notify call on
1097 NOTE: This change speeds up listener performance considerably, but
1098 introduces new latency on the application side. We may want to
1099 add an event queue to the atk-bridge.
1101 * atk-bridge/bridge.c:
1102 (spi_atk_bridge_focus_tracker):
1103 Do a local unref() on the event source after emission.
1105 * registryd/registry.c:
1106 (desktop_remove_application):
1107 Do an unref() on the event source after emission.
1108 (desktop_add_application):
1109 Do an unref() on the event source after emission.
1110 (notify_listeners_cb):
1111 When relaying an event, don't automatically add the event source
1112 to the local object cache, just CORBA_dup it instead. Likewise,
1113 if this method reenters, release the ref rather than calling
1115 (impl_registry_notify_event):
1116 No longer call remote unref() on the event source after dispatch.
1118 * libspi/eventlistener.c:
1119 (impl_accessible_event_notify_event):
1120 Removed remote unref ()
1122 * cspi/bonobo/cspi-bonobo-listener.c:
1124 We now call cspi_object_new() instead of cspi_object_add() on
1125 receipt of an event; thus we only have an implicit object ref
1126 while the cspi_event method is being executed. If we need to keep
1127 a reference to the object, the listener must call ref() on the
1128 object. Thus also we don't need to call cspi_object_unref() after
1129 invoking the listener callbacks in this method.
1133 New internal API for creating a new cspi object, without adding it
1134 to the object cache.
1136 Now uses cspi_object_new() to create the cspi object instance.
1138 Now checks to see if the object is in the internal object cache,
1139 and adds it if necessary before incrementing its refcount (note
1140 that new objects are added with a refcount of 1).
1141 (report_leaked_ref):
1142 New method which gives some information on leaked object instances
1143 if leak detection is turned on.
1145 * test/event-listener-test.c:
1146 (timing_test_event):
1147 New method, used for testing event delivery timing for special
1148 events of type "object:test". It reports elapsed time and
1149 events/sec every 500 events.
1151 Added a new listener, 'test listener', to check timing of event
1152 receipt as noted above.
1154 Added some timing output here also, reports elapsed time every 100
1157 * test/stress-test.c:
1158 Emit events of type "object:test", for use with "event-listener-test".
1160 * test/test-simple.c:
1161 (global_listener_cb):
1162 Call Accessible_ref() on the event source before calling
1163 validate_accessible, since the validation process does pointer
1164 comparisons on the event source, meaning that the event source
1165 needs to be added to the local object cache first. Any use of
1166 such pointer comparisons between Accessible objects requires that
1167 the caller hold an explicit reference to those objects.
1168 We also must therefore call Accessible_unref() when leaving this method.
1170 2002-06-13 Bill Haneman <bill.haneman@sun.com>
1172 * registryd/deviceeventcontroller.c:
1173 (spi_controller_update_key_grabs):
1174 Fix for #84735, subsequent keygrab listeners not informed of
1175 registration failure.
1178 (spi_base_construct):
1179 Add an assertion on construct, to make sure the GObject passed in
1180 is really a GObject.
1182 Explicitly initialize object->gobj pointer to NULL;
1184 * cspi/bonobo/cspi-bonobo-listener.c:
1185 (cspi_object_add_ref):
1186 New method, can specify whether to dup-ref a bonobo object passed
1187 in if it's newly added to the object cache.
1189 Now calls cspi_object_add_ref with second param of "FALSE". This
1190 prevents us from doing a pointless dup-ref followed by
1191 release-unref for all those cases where the object is already in
1192 our object cache (fix for #85205).
1194 * atk-bridge/bridge.c:
1195 (spi_atk_bridge_idle_init):
1196 Removed this method, we don't need to initialize in an idle
1199 Changed to call spi_atk_register_event_listeners directly, not via an
1200 idle handler. (fix for #81139)
1201 (gnome_accessibility_module_shutdown):
1202 Removed conditional around deregistration of listeners, since we
1203 don't use the idle handler and thus have always registered when
1205 (spi_init_keystroke_from_atk_key_event):
1206 Changed references to Accessibility_KEY_PRESSED to
1207 Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
1209 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1211 (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
1216 * test/stress-test.c:
1219 (may have been an incomplete commit yesterday?)
1221 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1224 Added target for new stress-test.
1226 * test/stress-test.c:
1227 New test, sends 1000 focus notifies in quick succession.
1229 * test/key-listener-test.c:
1230 Now we report whether a keylistener registration
1231 request succeeded or failed.
1233 * test/event-listener-test.c:
1234 Uncommented some listeners which are now implemented.
1237 2002-06-06 Bill Haneman <bill.haneman@sun.com>
1239 * registryd/deviceeventcontroller.c:
1240 (spi_controller_update_key_grabs):
1241 Fix for #82509, lack of failure notification when
1242 ALL_WINDOWS keygrabs fail due to XGrabKey
1243 failure: we synchronize the server when
1244 registering a passive grab, to make sure we get the
1245 error message before the call returns.
1247 2002-06-03 Bill Haneman <bill.haneman@sun.com>
1249 * test/test-simple.c:
1251 Removed #ifdef KEY_IMPL_WORKS guards.
1252 (test_keylisteners):
1253 Removed #ifdef KEY_IMPL_WORKS guards.
1254 Fixed bug which was causing a hang waiting for a
1255 "press" event (which was already overwritten by a "release"
1256 event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
1258 Added code to set globals 'key_press_received' and
1259 'key_release_received'.
1262 Added section "1.1 API Proposed Additions" which
1263 lists API additions desired for at-spi-1.1 (only one so far).
1264 Updated TODO list a little.
1266 2002-06-02 Bill Haneman <bill.haneman@sun.com>
1268 AT-SPI 1.0 API FINAL: at-spi 1.0 is now
1271 * configure.in: Revved to 1.0.0.
1273 * idl/Accessibility_Registry.idl:
1274 (registerKeystrokeListener):
1275 Added boolean return value.
1277 * registryd/registry.c:
1278 (notify_listeners_cb): Minor fix to debug output.
1280 * registryd/Accessibility_Registry.server.in.in:
1281 Revved version number in OAFIID to 1.0.
1283 * registryd/registryd.c:
1285 Use new OAFIID version.
1287 * cspi/bonobo/cspi-bonobo.c:
1289 Use new OAFIID version.
1295 * atk-bridge/bridge.c:
1297 Use new OAFIID version.
1299 * registryd/deviceeventcontroller.c:
1300 (impl_register_keystroke_listener):
1301 Added CORBA_boolean return value.
1302 (spi_controller_register_device_listener):
1303 Added gboolean return value.
1304 (spi_controller_register_global_keygrabs):
1305 Added gboolean return value.
1306 (spi_key_set_contains_key):
1307 Added implementation for many more control keys,
1308 for instance F1-F12, arrow keys, End, Home, Page_Up,
1310 [TODO: some still not implemented].
1312 * text/screen-review-test.c:
1313 (text_chunk_pad_string):
1314 New function: it provides mapping between coordinate
1315 positions of text chunks and character positions in the
1316 screen-review-line output string.
1317 (text_chunk_to_string):
1318 New function, calls text_chunk_pad_string with various
1319 pad/delimiter characters. Pushbuttons are delimited with
1320 square brackets, Frames with vertical 'pipe' lines, and
1321 other text with double quotes.
1322 (text_chunk_list_to_string):
1323 Calls new function text_chunk_to_string.
1324 (toplevel_composite):
1325 New function to composite layers CANVAS through
1326 POPUP in each toplevel (other layers are composited
1327 across toplevels, i.e. BACKGROUND and OVERLAY).
1328 (review_buffer_composite):
1329 Revise to use new methods.
1335 2002-05-31 Laszlo Peter <laca@sun.com>
1337 * configure.in: add the Xtst libdir to the runpath on Solaris,
1338 since it's not in the default library search path.
1340 2002-05-29 jacob berkman <jacob@ximian.com>
1342 * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
1344 2002-05-29 Bill Haneman <bill.haneman@sun.com>
1346 * test/screen-review-test.c:
1347 (text_chunk_pad_string):
1348 Added method, which pads the string according to the
1349 text bounds of the chunk. It also takes a 3-character
1350 string as a param which indicates the characters to be
1351 used for start, padding, and end delimitation of the chunk.
1352 (text_chunk_to_string):
1353 Changed to use text_chunk_pad_string.
1355 * configure.in: Fixed bug in AC_OUTPUT that was
1356 causing path substitution in Accessibility_Registry.server
1359 2002-05-23 Bill Haneman <bill.haneman@sun.com>
1361 * text/screen-review-test.c:
1362 (guess_string_clip):
1363 New method which attempts a best-guess at clipping
1364 text from components (like Java labels) which don't
1365 actually implement AccessibleText. This inaccurate
1366 clip is based on the assumption that the label is
1367 justified left-and-right, and monospaced.
1368 (text_chunk_get_clipped_string):
1369 We now call guess_string_clip() for text-containing
1370 components that don't implement AccessibleText.
1372 * test/screen-review-test.c:
1373 (review_buffer_get_text_chunk):
1374 We now pull "name" from labels if they do not implement
1375 AccessibleText (i.e. for Java labels).
1376 (get_screen_review_line_at):
1377 Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
1380 Replaceded AC_OUTPUT target
1381 registryd/Accessibility_Registry.server with
1382 registryd/Accessibility_Registry.server.in.
1384 * registryd/Accessibility_Registry.server.in:
1385 Removed (this is now a Makefile target).
1387 * registryd/Accessibility_Registry.server.in.in:
1388 Added (source for target above). We now use $(libexecdir) as
1389 prefix for the executable at-spi-registryd.
1391 * registry/Makefile.am:
1392 Now install at-spi-registryd into $(libexecdir), and build .server
1393 file with path (see above).
1395 2002-05-22 Bill Haneman <bill.haneman@sun.com>
1397 * test/screen-review-test.c:
1398 (text_chunk_get_clipped_string):
1399 We now check to see if words fall within clip bounds
1400 before resorting to character-by-character clip bounds testing.
1402 * TODO: Added a section for "2.2 Proposed API Additions".
1404 2002-05-21 Bill Haneman <bill.haneman@sun.com>
1406 * test/screen-review-test.c:
1408 Added a screen review benchmarking and test program to test
1411 * cspi/spi_accessible.c:
1413 Made some of the debug strings passed to cspi_check_ev a
1414 little more specific.
1416 2002-05-21 Padraig O'Briain <padraig.obriain@sun.com>
1418 * test/screen-review-test.c: Fix crashes in debug statements
1420 2002-05-20 Bill Haneman <bill.haneman@sun.com>
1422 * test/screen-review-test.c: Added this file.
1424 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1426 * atk-bridge/bridge.c: changed "object:state-change" to
1427 "object:state-changed" to match docs.
1429 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1431 * atk-bridge/bridge.c: Hooked up state-change event details.
1433 2002-05-11 Bill Haneman <bill.haneman@sun.com>
1435 * registryd/registry.c:
1436 Fixed quarking bug in event string parsing; now events with
1437 detail parameters get matched correctly to listeners.
1440 * util/idl/Magnifier.idl: remove.
1442 * util/*.[ch]: Remove.
1443 Magnification utilities and IDL are now in module gnome-mag.
1445 2002-05-10 Bill Haneman <bill.haneman@sun.com>
1447 * registryd/deviceeventcontroller.c:
1448 Fixed bug in grab key conversion which was causing keycode grabs
1449 to be converted to AnyKey grabs.
1452 updated NEWS file to reflect recent spin-off of gnome-mag.
1454 2002-05-09 Marc Mulcahy <marc.mulcahy@sun.com>
1456 * cspi/spi_accessible.c: Added exception checks. Fixed completely
1457 busted AccessibleStateSet_compare. Removed redundant casts.
1459 * cspi/spi-action.c: Removed redundant casts.
1461 * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
1463 * cspi/spi_component.c: Fixed typos and casting error.
1465 * cspi/spi_editabletext.c: Removed redundant casts.
1467 * cspi/spi_hyperlink.c: Fixed casting and exception checking.
1469 * cspi/spi_hypertext.c: Eliminated redundant casts.
1471 * cspi/spi_image.c: Eliminated redundant casts.
1473 * cspi/spi_registry.c: Eliminated redundant casts.
1474 SPI_deregisterGlobalEventListenerAll () removed retval variable.
1475 * cspi/spi_selection.c: Removed redundant casts.
1476 * cspi/spi_text.c: Eliminated redundant casts. Fixed exception
1477 handling. Screen geometry and text offsets were being returned as 0
1478 on error which is technically valid-- changed these to return -1.
1479 Added marshaller for text boundary types to fix bug with boundary
1480 types being passed incorrectly to atk.
1482 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1485 * cspi/spi_registry.c:
1486 Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
1487 which was uncovered by the recent key changes.
1489 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1491 * test/event-listener-test.c:
1493 Added new test, "event-listener-test";
1494 this code does two things; it benchmarks traversal time
1495 for the accessible hierarchy for the first running accessible
1496 app, and it connects listeners for all supported event types.
1497 It is thus useful as an example event listener and for
1498 diagnostics/debugging of event generation.
1500 2002-05-08 Bill Haneman <bill.haneman@sun.com>
1503 Removed unnecessary dependency on libutil.
1506 Revved micro version: 0.13.1
1508 2002-05-08 Bill Haneman <bill.haneman@sun.com>
1511 Removed util/Makefile from targets.
1514 Removed util subdir from SUBDIRS (temporarily,
1515 pending removal of magnifier-only code
1519 #ifdef-ed out magnifier dependencies, since
1520 magnifier IDL, headers, and binary now live in
1521 module gnome-mag and we don't want at-spi to depend
1522 on gnome-mag. A magnifier demo which can run alongside
1523 simple-at is forthcoming in the gnome-mag module.
1525 NOTE: Split magnifier binary, IDL, and magnification
1526 activation code from at-spi into module gnome-mag.
1528 2002-05-03 Marc Mulcahy <marc.mulcahy@sun.com>
1530 * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
1531 cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
1533 2002-05-03 Bill Haneman <bill.haneman@sun.com>
1536 Revved to version 0.13.0
1538 * idl/Accessibility_Registry.idl:
1539 Changed definition of KeySet from sequence of longs to sequence of
1540 KeyDefinitions, and added KeyDefinition struct.
1541 Required for fix to bug 80616.
1543 * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
1544 Changed AccessibleKeySet to Accessibility_KeySet marshalling code
1545 to use new definition (see above).
1547 * registryd/deviceeventcontroller.c: handle_keygrab(),
1548 spi_keyset_contains_key():
1549 Changed to make use of new struct; this allows matching based on
1550 string key-name, for instance "Tab". This also allows matching of
1551 composed characters, non-alphanumeric characters in a way that
1552 doesn't involve dependencies on X keysym codes directly, etc.
1554 * test/key-listener-test.c:
1555 Added test for Alt-Tab key using "string" specification of keyset,
1556 and modified one of the tests to use a keycode-based keyset.
1557 Thus this test both tests and demonstrates the creation and use of
1558 keysets of three forms: specified via keycode array,
1559 keysym array, and string array. (The string case only contains a
1560 single string, i.e. a string array of length 1).
1563 Turned on PRINT_TREE option by default. Also fixed a
1564 string-freeing bug in the PRINT_TREE code.
1565 Added a listener to window:minimize events.
1567 2002-05-08 Padraig O'Briain <padraig.obriain@sun.com>
1569 * atk-bridge/bridge.c:
1570 (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
1571 for window:activate and window:deactiveate
1572 (atk_bridge_property_event_listener atk_bridge_signal_listener
1573 atk_bridge_window_event_listener) Tidy debug code
1575 2002-05-02 Marc Mulcahy <marc.mulcahy@sun.com>
1577 * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
1578 Fixed handling for NULL return value from ATK.
1580 * libspi/action.c libspi/component.c libspi/editabletext.
1581 libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
1582 libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
1583 Removed redundant casts.
1585 * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
1586 Fixed off by one bug.
1588 *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
1589 function not present in idl)
1591 2002-05-02 jacob berkman <jacob@ximian.com>
1593 * atk-bridge/Makefile.am: make atk-bridge a real module
1595 2002-04-26 Radek Doulik <rodo@ximian.com>
1597 * libspi/stateset.c (spi_init_state_type_tables): fix size of
1598 atk_state_types table
1600 2002-04-22 jacob berkman <jacob@ximian.com>
1603 * libspi/Makefile.am: add deps on the built files to help
1604 automake, and don't version the ORBit typelib
1606 2002-04-19 Padraig O'Briain <padraig.obriain@sun.com>
1608 * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
1609 cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
1610 cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c
1611 cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
1612 cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
1613 cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
1614 cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
1615 libspi/accessible.h libspi/accessible.h libspi/base.h
1616 libspi/component.h libspi/editabletext.h libspi/hyperlink.h
1617 libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
1618 libspi/relation.h libspi/remoteobject.h libspi/selection.h
1619 libspi/spi-private.h libspi/statetset.h libspi/table.h
1620 libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
1621 util/mag_client.h util/mag_control.c util/mag_image.c
1622 util/mag_image.h util/magnifier.c util/magnifier.h:
1623 Add missing file headers; standardize existing ones
1625 2002-04-18 Marc Mulcahy <marc.mulcahy@sun.com>
1627 * atk-bridge/bridge.c: Added window event support.
1629 2002-04-18 Michael Meeks <michael@ximian.com>
1631 * libspi/relation.c (impl_getNTargets): impl.
1632 (impl_getTarget): impl.
1634 * libspi/Makefile.am: fix stateset install.
1636 2002-04-17 Bill Haneman <bill.haneman@sun.com>
1639 Started putting useful info in this file.
1641 2002-04-17 Marc Mulcahy <marc.mulcahy@sun.com>
1643 * atk-bridge/bridge.c:
1644 Propagate state-changed notifications to ATs
1646 * cspi/spi_registry.c: update docs to reflect actual behavior of
1647 state-change events.
1649 2002-04-17 Bill Haneman <bill.haneman@sun.com>
1652 Incremented version to 0.12.1
1654 * util/mag_client.h:
1655 Add missing declaration for magnifier_exit,
1656 used by mag_control.c - Forte compiler didn't like
1657 the implicit redeclaration of the function :-(
1660 2002-04-16 Bill Haneman <bill.haneman@sun.com>
1663 Revved version to 0.12 due to API change (see below).
1665 * cspi/spi-roletypes.h:
1666 removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE
1667 definition from the inline docs, and added docs
1668 for SPI_ROLE_LAST_DEFINED.
1671 * cspi/spi_streamablecontent.c:
1672 Added missing seek_type parameter to
1673 (so far unused) method,
1674 AccessibleStreamableContent_seek().
1675 [ RT approval JodyG. ]
1678 Fixed docs for SPI_createAccessibleKeystrokeListener.
1680 * cspi/spi_registry.c:
1681 Fixed docs for SPI_KEYSET_ALL_KEYS.
1683 * docs/reference/cspi/at-spi-cspi-sections.txt:
1684 Added a number of missing APIs to SECTIONS.
1686 2002-04-16 Bill Haneman <bill.haneman@sun.com>
1688 * registryd/Makefile.am:
1690 * cspi/bonobo/Makefile.am:
1691 Add $(X_LIBS) to makefiles.
1693 2002-04-15 Bill Haneman <bill.haneman@sun.com>
1696 Revved version to 0.11.
1698 * libspi/component.c:
1699 Added implementation for grabFocus.
1701 * idl/Accessibility_Component.idl
1702 (Accessibility_Component_grabFocus):
1703 Made this method return boolean to indicate success or failure, to
1704 be consistent with cspi and the corresponding ATK method.
1706 * idl/Accessibility_Selection.idl
1707 (Accessibility_Selection_selectAll) :
1708 Made these methods return boolean to indicate success or
1709 failure, to be consistent with cspi and the corresponding ATK methods.
1711 * idl/Accessibility_EditableText.idl
1712 (Accessibility_EditableText_setTextContents,
1713 Accessibility_EditableText_insertText,
1714 Accessibility_EditableText_cutText,
1715 Accessibility_EditableText_deleteText,
1716 Accessibility_EditableText_pasteText):
1717 Made these methods return boolean to indicate
1720 * cspi/spi_editabletext.c:
1721 Made these methods return booleans.
1723 * libspi/selection.c:
1724 * libspi/component.c:
1725 * libspi/editabletext.c:
1726 Connected the boolean returns from ATK
1727 to the server-side code referenced above.
1729 2002-04-14 Bill Haneman <bill.haneman@sun.com>
1731 * idl/Accessibility_Table.idl: Added missing methods,
1732 Accessibility_Table_addRowSelection,
1733 Accessibility_Table_addColumnSelection,
1734 Accessibility_Table_removeRowSelection,
1735 Accessibility_Table_removeColumnSelection.
1738 Added C wrappers for above IDL:
1739 AccessibleTable_addRowSelection,
1740 AccessibleTable_addColumnSelection,
1741 AccessibleTable_removeRowSelection,
1742 AccessibleTable_removeColumnSelection.
1745 Added server-side implementation code for IDL above, connecting
1746 to pre-existing ATK api.
1748 2002-04-13 Marc Mulcahy <marc.mulcahy@sun.com>
1750 * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
1752 * libspi/accessible.c: Added implementation fo
1753 Accessibility_Accessible_get_state.
1755 * libspi/libspi.h: Added stateset.h to the list of includes.
1757 * libspi/stateset.c: Fixed broken implementation.
1759 2002-04-13 Bill Haneman <bill.haneman@sun.com>
1762 Added implementation code for Accessibility_Magnifier_exit ().
1764 * util/mag_control.c:
1765 Added test code for above method; you can
1766 now kill an existing magnifier via
1767 ./mag_control q, from the util directory.
1769 * test/key-listener-test.c:
1771 Added a new test, for our key listener API.
1773 2002-04-11 Bill Haneman <bill.haneman@sun.com>
1775 * test/app.c, test/keysynth-demo.c:
1777 Replace use of snprintf with g_snprintf.
1778 (fix for bugzilla 78249)
1780 2002-03-27 Michael Meeks <michael@ximian.com>
1784 * util/Makefile.am (INCLUDES): fix.
1785 (DONT_DIST_SOURCE): don't distribute the
1788 * libspi/Makefile.am (dist-hook): ditto.
1790 2002-03-27 Padraig O'Briain <padraig.obriain@sun.com>
1792 * libspi/hypertext.c:
1793 Fix warnings when yelp is used with atk-bridge
1795 2002-03-21 Michael Meeks <michael@ximian.com>
1797 * libspi/application.c (spi_application_new):
1798 use spi_accessible_construct so we use the AtkObject
1801 2002-03-19 Michael Meeks <michael@ximian.com>
1803 * registryd/registry.c (desktop_remove_application),
1804 (desktop_add_application): clean coding style.
1806 * registryd/desktop.c (spi_desktop_remove_application),
1807 (spi_desktop_add_application): kill re-enterency hazards.
1808 (spi_desktop_dispose): remove bogus redundant cast
1809 obscuring bug; fix bug too.
1810 (spi_desktop_init): make the desktop object immortal.
1812 2002-03-16 Bill Haneman <bill.haneman@sun.com>
1815 Added a #define-guarded tree-traversal step
1816 when enumerating the apps (diagnostic tool).
1818 2002-03-15 Bill Haneman <bill.haneman@sun.com>
1820 * idl/Accessibility_Role.idl:
1821 Added ROLE_DRAWING_AREA which seemed to be missing from the
1824 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1826 * cspi/spi-roletypes.h cspi/spi_accessible.c
1827 idl/Accessibility_Role.idl libspi/accessible.c: synched up role
1830 * registryd/desktop.c registryd/desktop.h registryd/registry.c:
1831 Added signals to SpiDesktop and callbacks in SpiRegistry to notify
1832 AT when applications are added and removed from the desktop. This
1833 reverts the previous broken implementation using the backing
1834 AtkObject for the SpiDesktop.
1836 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1838 * registryd/desktop.c: emit the "children-changed::add" and
1839 "children-changed::remove" signals on the backing ATK object for
1840 the desktop so AT can tell when applications are started and shut
1843 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1845 * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
1847 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1849 * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
1851 * cspi/spi_accessible.c: Implemented c bindings for stateset support
1853 * cspi/state-types.h: synched with IDL and ATK
1855 2002-03-13 Bill Haneman <bill.haneman@sun.com>
1857 * libspi/accessible.c
1858 (impl_accessibility_accessible_get_child_at_index):
1859 Change return value for g_return_if_fail ()
1860 to CORBA_OBJECT_NIL instead of "0" (!)
1862 * registryd/Makefile.am:
1863 * registryd/Accessibility_Register.server.in:
1864 Changed name of executable, "registryd",
1865 to something more informative:
1868 2002-03-13 Michael Meeks <michael@ximian.com>
1870 * atk-bridge/bridge.c (atk_bridge_init): don't register
1871 if we're in a bonobo-component, rather than a bonobo app.
1873 2002-03-13 Michael Meeks <michael@ximian.com>
1875 * atk-bridge/bridge.c (gtk_module_init): split
1876 out body to (atk_bridge_init): here, since otherwise
1877 we get symbol conflicts and oddness when invoked
1878 from (gnome_accessibility_module_init): here (upd.)
1880 2002-03-11 Bill Haneman <bill.haneman@sun.com>
1883 New file. Explicitly allow "build sheriff" putbacks provided
1884 they are tested on Solaris.
1886 * docs/reference/cspi/Makefile.am:
1887 Added '-' to the "cp" command for index.sgml.
1888 ("patch by thomasvs, soon coming to a GUADEC near you")
1891 Incremented version number (0.9.0) for new release.
1892 Changed macro that checks for popt, to better detect
1893 obsolete versions of popt.
1896 Added X_LIBS to AC_SUBST, for applications
1897 that call Xlib API directly.
1900 2002-03-07 Bill Haneman <bill.haneman@sun.com>
1903 Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
1906 Fix regression caused by hard-coding major
1907 version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
1910 * test/test-simple.c (test_editable_text),
1911 (test_test): revert previous change (error was
1912 a regression in gail which is now fixed).
1914 2002-03-04 Michael Meeks <michael@ximian.com>
1916 * test/test-simple.c (test_editable_text),
1917 (test_text): pass G_MAXINT instead of '-1' for
1918 whole string - is this a good thing !?
1920 * cspi/spi_accessible.c
1921 (Accessible_getRelationSet): fix crasher bug
1922 overwriting the end of the array.
1924 * test/test-simple.c (validate_accessible): free,
1925 not g_free returned relation set.
1927 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
1929 * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
1930 implemented stateset support
1932 * idl/Accessibility_State.idl: Made necessary changes to
1933 the IDL to support state sets.
1935 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1937 * registryd/deviceeventcontroller.c:
1938 Added implementation for generateMouseEvent.
1940 * cspi/spi_registry.c:
1941 Connected new implementation for generateMouseEvent
1944 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1947 Incremented revision (but no change in public API
1948 outside of 'utils', which are not installed public yet.)
1950 * libspi/component.c:
1951 Changed to use atk_component API for layers and
1952 mdi_zorder, instead of deprecated atk_object API.
1954 Magnification Utility Enhancements:
1957 Added implementation of createZoomRegion, clearAllZoomRegions,
1958 resizeZoomRegion. Added new commandline argument
1959 "--no-initial-region". Note that clearAllZoomRegions doesn't
1960 unmap the old '0' region as it should (yet), and the other
1961 methods only work when creating/resizing a single region,
1962 which is "region 0".
1963 (Code for multiple region support will be added later.)
1966 Now we raise the magnifier window each time it's refreshed;
1967 this will help keep it on top.
1969 * util/mag_client.h:
1970 Added simple wrappers for above, used by mag_control.
1971 For general use, it's recommended to use the bonobo magnifier
1972 control API directly instead of using these wrappers.
1975 Moved ZoomRegionData from magnifier.c to this file.
1977 * util/mag_control.c:
1978 Added some code to exercise new IDL implementations.
1980 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
1982 * libspi/text.c: Provide implementation for getAttributes.
1984 2002-02-04 Bill Haneman <bill.haneman@sun.com>
1987 Incremented revision.
1989 * test/test-simple.c:
1990 Replaced use of deprecated g_main_iteration with
1991 g_main_context_iteration.
1993 2002-01-28 Padraig O'Briain <padraig.obriain@sun.com>
1996 Incremented revision for desktop alpha 2.
1998 2002-01-28 Mark McLoughlin <mark@skynet.ie>
2000 * libspi/remoteobject.[ch]: make RemoteObject and interface rather
2003 * test/simple-at.c: include netinet/in.h.
2005 2002-01-24 Mark McLoughlin <mark@skynet.ie>
2007 * cspi/spi_accessible.c: (Accessible_getRelationSet):
2008 use NULL, not CORBA_OBJECT_NIL.
2010 * libspi/accessible.c:
2011 (impl_accessibility_accessible_get_relation_set):
2012 allocate the sequence correctly.
2014 * libspi/remoteobject.h: kill spi_remote_object_new.
2016 * test/test-simple.c: (validate_accessible): add code
2017 to test relation sets, now all we need is to figure
2018 out how to excercise this code path :/
2020 2002-01-18 Michael Meeks <michael@ximian.com>
2022 * test/test-simple.c
2023 (key_listener_cb): consume the key.
2024 (test_keylisteners): update.
2025 (main): wait for any pending unrefs on events.
2027 * registryd/deviceeventcontroller.c
2028 (spi_controller_update_key_grabs): only re-issue the
2029 grab on a key release.
2030 (spi_device_event_controller_forward_key_event):
2031 refresh the keygrabs before we notify the listeners,
2032 to reduce the X ungrab / re-grab race.
2033 (spi_controller_register_with_devices): remove
2034 XSelectInput - we do that with the gdk_window_ call.
2035 (_spi_controller_device_error_handler): return a value.
2036 s/GDK_DISPLAY/spi_get_display/
2038 2002-01-17 Michael Meeks <michael@ximian.com>
2040 * registryd/deviceeventcontroller.c
2041 (_deregister_keygrab): don't blow out the later
2044 * test/test-simple.c (test_keylisteners): do a
2045 more intelligent validation.
2047 2002-01-14 Michael Meeks <michael@ximian.com>
2049 * atk-bridge/bridge.c
2050 (gnome_accessibility_module_init),
2051 (gnome_accessibility_module_shutdown): impl.
2052 (gtk_module_init): protect vs. double inits.
2053 (add_signal_listener): impl.
2054 (spi_atk_bridge_state_event_listener): kill
2055 (deregister_application): split out of
2056 (spi_atk_bridge_exit_func): here.
2058 2002-01-18 Bill Haneman <bill.haneman@sun.com>
2061 Added caret tracking when using magnifier, and
2062 now use text bounds for focus tracking of text elements, rather than
2063 the component bounds - this is helpful for short text fields in long
2064 table cells, at high magnification.
2066 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2068 * registryd/deviceeventcontroller.c:
2069 Regression fix for keylistener de-registration; global keygrabs
2070 were not being released when deregisterKeystrokeListener was
2071 called in cspi, since
2072 Accessibility_DeviceEventController_deregisterKeystrokeListener
2073 was called with a zero-length keyset. That is because the cspi
2074 method, SPI_deregisterKeystrokeListener, does not take a keyset
2075 parameter but instead should remove all the key grabs held be a
2077 The code in impl_deregister_keystroke_listener was changed to copy
2078 the keylist from the listener instance previously registered with
2079 the DeviceEventController before releasing the grabs.
2081 * registryd/registry.c:
2082 * registryd/deviceeventcontroller.c:
2083 * libspi/spi-private.h:
2085 Changed spelling of "re-enterant" to "re-entrant" globally.
2087 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2089 * test/test-simple.c:
2090 Changed key listeners test - the test was slightly mis-using the
2091 (admittedly poorly documented) SPI_generateKeyboardEvent API.
2092 It now uses '=' as the key event listened to and generated,
2093 relying on a keysym match rather than assuming that keycode 33
2094 is always equal to keysym '!'.
2096 2002-01-15 Bill Haneman <bill.haneman@sun.com>
2099 Changed simple-at to use a specific keyset, rather than
2100 SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2101 manager, desktop, etc.
2103 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2105 * registryd/deviceeventcontroller.c:
2106 Replaced standard X error handler with a special handler that
2107 is non-fatal for failed keygrabs. This works around
2108 problems with keygrab clashes sometimes observed on
2110 Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate
2111 mouse handling code as yet).
2113 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2116 Incremented revision for desktop alpha release.
2119 Fixed a couple of the more glaring errors (still not
2122 2002-01-11 Michael Meeks <michael@ximian.com>
2124 * registryd/deviceeventcontroller.c
2125 (spi_device_event_controller_forward_key_event): kill
2126 XUngrabKey / XKeyGrab race.
2127 (spi_controller_grab_keyboard): rename to
2128 (spi_controller_update_key_grabs): this, and deal
2129 with incremental adding / removing grabs more
2131 (_register_keygrab): ensure we're not pending a remove.
2132 (spi_grab_mask_free): impl.
2133 (spi_controller_register_global_keygrabs): split out
2135 (handle_keygrab): impl.
2136 (_deregister_keygrab): impl.
2137 (spi_controller_deregister_global_keygrabs): impl.
2138 (spi_controller_update_key_grabs): re-issue the grab if
2139 we just recieved a notification.
2141 * test/test-simple.c (key_listener_cb): remove debug.
2143 * registryd/deviceeventcontroller.c
2144 (spi_controller_register_device_listener): after
2145 registering a global keygrab, actualy register it !
2146 don't wait for a timeout; doh !
2148 * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2149 to make it more readable / manipulable.
2150 s/grabmask/grab_mask/ s/refcount/ref_count/
2151 s/keyval/key_val/ s/modmask/mod_mask
2153 2002-01-08 Michael Meeks <michael@ximian.com>
2155 * registryd/deviceeventcontroller.c
2156 (spi_controller_register_with_devices): use gdk calls to
2158 (global_filter_fn): implement the filter.
2159 (spi_device_event_controller_check_key_event): rename to
2160 (spi_device_event_controller_forward_key_event): this & upd.
2161 (spi_get_display): replace with GDK_DISPLAY.
2163 * registryd/deviceeventcontroller.c
2164 (spi_controller_deregister_device_listener): unroll into
2165 (impl_deregister_keystroke_listener): here to simplify.
2166 (spi_controller_register_global_keygrabs): split cut and
2167 paste (!) out into (_register_keygrab): here, shorter & sweeter.
2168 (spi_controller_deregister_device_listener): remove.
2169 (impl_register_mouse_listener): remove, no mouse listener
2170 support in at-spi-1.0
2172 * registryd/registry.c
2173 (_device_event_controller_hook): kill.
2174 (spi_registry_init): upd.
2176 * registryd/deviceeventcontroller.c
2177 (spi_device_event_controller_class_init): upd.
2178 (spi_check_key_event): merge into.
2179 (spi_device_event_controller_check_key_event):
2180 here and kill strange static ev init, don't leak
2181 the x_event - nor dynamicaly allocate it.
2183 * registryd/registry-main.c (main): re-direct
2184 timeout to remove strange vtable mess.
2186 * registryd/deviceeventcontroller.c
2187 (remove_listener_cb): impl.
2188 (spi_controller_deregister_device_listener):
2189 fix re-enterancy hazard.
2191 2002-01-07 Michael Meeks <michael@ximian.com>
2193 * registryd/deviceeventcontroller.c
2194 (spi_device_event_controller_new): upd.
2195 (impl_notify_listeners_sync): upd. debug.
2196 (spi_notify_keylisteners): fix re-enterancy hazards,
2197 prettify, remove O(n*n) iteration.
2198 (spi_controller_grab_keyboard): fix iteration.
2199 (spi_check_key_event): re-format to suit coding style.
2200 Clean all the warnings - we're warning free.
2202 * registryd/deviceeventcontroller.h:
2203 * registryd/registry.h: make mutualy referential with
2204 typesafe forward references instead of (!) void pointer
2207 2002-01-11 Michael Meeks <michael@ximian.com>
2209 * cspi/spi_accessible.c (role_names): add a role name
2210 to sync this array with the enum; and make the regression
2213 2002-01-10 Michael Meeks <michael@ximian.com>
2215 * cspi/spi_registry.c (SPI_generateKeyboardEvent):
2216 allow expansion of enumeration & kill warning.
2218 * test/test-simple.c (key_listener_cb): impl.
2219 (test_keylisteners): impl.
2221 * cspi/spi-listener.h: make listener signatures const
2222 on the provided (const) events.
2224 * test/keysynth-demo.c: upd. to const events.
2226 * test/simple-at.c: ditto.
2228 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2231 Rev the version to 0.5 (the previous tarball was named 0.4,
2232 even though the micro number was 3), so we need to rev upwards
2233 again for beta2/"desktop-alpha"
2236 Checked in a demo script, which requires editing before use!
2237 Proceed with caution.
2240 Fixed typo in header which was redefining SPI_ACTION_CLASS.
2242 * cspi/spi_accessible.c:
2243 Add a couple of missing enum initializations, and fix some enum
2246 * cspi/spi_registry.c:
2247 Add comment describing keystring parameter to SPI_generateKeyboardEvent.
2249 * docs/reference/cspi/at-spi-cspi-sections.txt:
2250 Remove/fix a couple of broken document references.
2253 Minor tweaks to the demo. We now (sigh) use Alt-SHIFTLOCK as well
2254 as Alt-Control to listen for commands, since on some systems
2255 Control-Alt may already be grabbed.
2257 2002-01-10 Bill Haneman <bill.haneman@sun.com>
2260 Update version number to 0.4 for Beta2.
2262 * libspi/accessible.c, libspi/accessible.h:
2263 Expose spi_accessible_construct, to enable libgail-gnome
2264 construction from spi_accessible subtype.
2266 * utils/magnifier.c:
2267 Workaround for bug in some non-gnome-compliant window managers
2268 which made magnifier resize improperly.
2270 2002-01-09 Bill Haneman <bill.haneman@sun.com>
2272 * libspi/accessible.c: (spi_accessible_new) :
2273 Move the test for SPI_IS_REMOTE_OBJECT to
2274 spi_accessible_new_return, fixing a bug and compile time warning.
2276 2002-01-08 Michael Meeks <michael@ximian.com>
2278 * registryd/registry.c (parse_event_type): remove strndup.
2280 * libspi/Makefile.am (libspi_la_SOURCES): remove
2281 sources already included in the headers section.
2283 * libspi/util.c: add.
2285 * libspi/spi-private.h: add.
2287 * registryd/registry.c: update to moved list iterators.
2289 2002-01-05 Michael Meeks <michael@ximian.com>
2291 * test/simple-at.c (main): upd. auto-module set to atk-bridge
2293 * test/test-simple.c (main): ditto.
2295 2002-01-04 Michael Meeks <michael@ximian.com>
2297 * libspi/accessible.c (spi_accessible_new): remove 2nd,
2298 redundant construct.
2300 * registryd/registry.c
2301 (get_listener_list): impl.
2302 (impl_accessibility_registry_register_global_event_listener):
2303 re-impl. to simplify using ~, remove dodgy const cast off.
2304 (parse_event_type): constify.
2305 (impl_accessibility_registry_deregister_global_event_listener_all):
2306 re-write, more efficiency and simplicity, kill re-enterancy
2308 (compare_listener_corbaref, compare_corba_objects),
2309 (compare_listener_quarks): define out.
2310 (impl_accessibility_registry_deregister_global_event_listener):
2311 re-write for effiency, and nail re-enterancy hazard.
2312 (impl_accessibility_registry_get_desktop_list): impl.
2313 (re_enterant_list_delete_link): impl.
2314 (re_enterant_list_foreach): impl.
2315 (remove_listener_cb): impl.
2316 (_registry_notify_listeners): kill.
2317 (notify_listeners_cb): impl.
2319 * cspi/spi_registry.c (SPI_freeDesktopList): impl.
2320 (SPI_getDesktopList): impl.
2322 * test/test-simple.c (test_desktop): test the methods.
2324 2002-01-03 Michael Meeks <michael@ximian.com>
2326 * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
2327 keystrings since we free them
2328 (SPI_freeAccessibleKeySet): in here.
2330 * libspi/accessible.c (spi_accessible_new): kill warning,
2331 wonder what is going on with the constructor here.
2333 2002-03-01 Bill Haneman <bill.haneman@sun.com>
2335 * libspi/accessible.c (spi_accessible_new ()) :
2336 Added check to see if AtkObject is an SpiRemoteObject before
2337 creating an SpiAccessible.
2339 2002-05-01 Bill Haneman <bill.haneman@sun.com>
2341 * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
2342 Enable keygrabs using the Control modifier, now that they are
2343 working properly (they were previously disabled).
2346 Change the command keygrab for this demo to "Control+Alt", so as
2347 to conflict with fewer other key commands on the system; this
2348 means that the quit command for "simple-at" is now "Ctrl-Alt-q".
2350 Removed a pointlessly-chatty keylistener for unshifted keys
2351 (shifted keys are still reported).
2353 2002-02-01 Bill Haneman <bill.haneman@sun.com>
2355 * libspi/remoteobject.h:
2356 * libspi/remoteobject.c:
2357 Added definitions for special AtkObject subtype, required for
2358 support of remote components (specifically, used by BonoboControl
2359 accessibility implementation).
2361 2002-01-02 Marc Mulcahy <marc.mulcahy@sun.com>
2363 * cspi/spi.h: synched relation types with ATK
2365 * cspi/spi_accessible.c: Added implementations of
2366 AcccessibleRelation_* methods
2368 * idl/Accessibility_Relation.idl: added getRelationTypeName
2369 method. Synched known relation types with ATK. Allowed for
2370 relation type extension with the RELATION_EXTENDED type.
2372 * libspi/relation.c: Provided implementations for
2373 AccessibleRelation methods.
2375 2002-01-01 Bill Haneman <bill.haneman@sun.com>
2377 API tweaks for today's API 'freeze'.
2380 Added placeholder functions to allow future compatible expansion
2381 of the IDL interfaces.
2383 * idl/Accessibility_Registry.idl:
2384 Changed generateKeyEvent to generateKeyboardEvent. Changed
2385 signature of this method to accept an optional keystring in
2386 parameter (for complex text input synthesis) and changed use of
2387 simple 'boolean' parameter in registerKeystrokeListener to a
2388 struct, EventListenerMode.
2390 * cspi/spi_accessible.c:
2392 * cspi/spi_streamablecontent.c:
2393 Added references to AccessibleStreamableContent interface, and
2394 definition and implementation of AccessibleStreamableContent
2397 * cspi/spi_registry.c:
2399 Changed generateKeyEvent API to generateKeyboardEvent,
2400 taking a new (optional) keystring parameter to support complex
2405 Renamed directory (to better reflect its actual purpose, bridging
2406 from at-spi to ATK). The .so module is also now named
2409 * idl/Accessibility_Hypertext.idl:
2410 * libspi/accessible.c:
2411 * libspi/hypertext.h:
2412 * libspi/hypertext.c:
2413 Changed Accessibility_Hypertext to *not* derive from
2416 * cspi/spi_registry.c:
2417 Added list of legal event type names for 'window' events, which
2418 completes the registry event API.
2420 2001-12-22 Marc Mulcahy <marc.mulcahy@sun.com>
2422 * at-bridge/bridge.c: Added registration for separate
2423 "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
2424 signals. If either of the first two parameters to the generic
2425 bridge signal handler are ints, they are passed on as event
2426 details. This allows an AT to determine what text was inserted.
2428 2001-12-21 Bill Haneman <bill.haneman@sun.com>
2430 * registryd/deviceeventcontroller.c:
2431 Fixed regressions in generateKeyEvent caused by the removal of
2432 gdk_init from registryd; we now use pure X calls to connect to the
2433 display, which makes sense because deviceeventcontroller already
2434 uses a fair bit of X API (should eventually be migrated to a
2435 'portability layer').
2437 * registryd/desktop.c:
2438 Fixed minor regression in spi_desktop_init, changed the way the
2439 desktop name is being set to work with new spi_base API
2440 (gobject-based, rather than AtkObject-based).
2442 * registryd/Makefile.am:
2443 Minor revision of makefile to use XTST_LIBS variable rather than
2444 hard-wiring the Xtst LD_ADD element.
2446 * test/keysynth-demo.c:
2447 Tweaked an output message; added initialization of the
2448 'keystrings' member of the "switch listener" key_set.
2450 * libspi/relation.c:
2451 Squashed compile-time warning.
2453 * libspi/accessible.c:
2454 Cosmetic and formatting fixes, renamed a static method.
2456 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
2458 * libspi/accessible.c
2460 * libspi/application.c
2463 * libspi/component.c
2464 * libspi/editabletext.c
2465 * libspi/hyperlink.c
2466 * libspi/hypertext.c
2468 * libspi/selection.c
2472 * registryd/desktop.c:
2473 Changed SpiBase to contain a GObject pointer rather than an AtkObject
2475 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2477 * idl/Accessibility_Registry.idl:
2478 Added boolean member 'is_text' to DeviceEvent. This is for the
2479 use of key events, and helps prevent ambiguity between composed
2480 key strings and keysym names, since both may potentially be
2481 returned in the 'event_string' member.
2483 * at-bridge/bridge.c:
2484 * registryd/deviceeventcontroller.c:
2485 Use the 'is_text' member when notifying device event listeners.
2486 Knon issue: composed characters are not dealt with correctly by
2487 the global key listener implementation yet.
2489 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2491 * at-bridge/bridge.c:
2492 Namespaced local static methods to spi_atk_bridge_* where
2493 previously named bridge_*, and spi_* elsewhere.
2495 * at-bridge/bridge.c:
2496 * cspi/bonobo/cspi-bonobo-listener.c:
2497 Added demarshalling/conversion for string member of
2498 Accessibility_DeviceEvent to AccessibleKeystroke.
2500 * registryd/deviceeventcontroller.c:
2501 Added code to fill the Accessibility_DeviceEvent key string value
2502 member for global key events (i.e. from XGrabKey), to match
2503 behavior of Accessibility_DeviceEvent from the toolkit key events
2504 from the bridge. Fixed timestamp in global key event notifications.
2507 Added printout of key event's string value to
2508 report_ordinary_key_event, for demo/debugging purposes.
2510 2001-12-15 Bill Haneman <bill.haneman@sun.com>
2512 * idl/Accessibility_Registry.idl:
2513 Removed Accessibility_KeyStroke structure in favor of generic
2514 Accessibility_DeviceEvent structure.
2515 Changed Accessibility_ControllerEventMask from a struct to an
2518 * at-bridge/bridge.c:
2519 Changed APIs to use DeviceEvent structure as above, and removed
2520 bogus casting between these event structures.
2522 * cspi/spi-listener.h:
2523 Added keystring member of AccessibleKeystroke structure, to enable
2524 matching on event "names" rather than only hardware codes and
2528 Added keystrings member of AccessibleKeySet struct, to allow
2529 matching on event names (as above).
2530 Added declarations for SPI_createAccessibleKeySet and
2531 SPI_freeAccessibleKeySet. Due to changes in libspi, we now pass
2532 event modmasks directly as unsigned ints rather than structs with
2533 refcounts, in the DeviceEventController methods.
2535 * cspi/spi_registry.c:
2536 Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
2538 * cspi/spi-roletypes.h:
2539 Added documentation of newly added SPI Roles.
2541 * cspi/bonobo/cspi-bonobo-listener.c:
2542 Changes in support of API changes above.
2544 * libspi/accessible.c:
2545 Converted APIs to use DeviceEvent structure (see IDL changes
2548 * registryd/deviceeventcontroller.c:
2549 Added DEControllerGrabMask structure to track keygrabs not only by
2550 modmask but by keyset as well; this allows us to do "global"
2551 (i.e. X) keygrabs on a per-key or keyset basis rather than always
2552 grabbing on AnyKey and then filtering after-the-fact.
2553 Bugfixes for event filtration mean that we don't get false matches
2554 on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
2556 * registryd/deviceeventcontroller.c:
2557 Namespaced a number of static methods to use spi_ prefix. Major
2558 revision to internals of global (i.e. X) key grabs.
2560 * registryd/deviceeventcontroller.h:
2561 Removed keymask_list and added keygrabs_list to
2562 SpiDeviceEventController struct.
2565 Added use of SPI_createAccessibleKeySet API when creating a
2566 listener for only one key. Attach a listener to "shift spacebar
2567 SPI_KEY_RELEASE" as a demonstration. Changed (incorrect) usage of
2568 X key event names to SPI key event names, so that listeners are
2569 registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
2571 * test/keysynth-demo.c:
2572 Changed (incorrect) use of X key event names (KeyPressed,
2573 KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
2576 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2578 * libspi/accessible.c:
2579 Convert all AtkRole enumerations to Accessibility_Role enums when
2580 getting a role from an AtkObject.
2582 * cspi/spi_accessible.c:
2583 Complete the conversion of Accessibility_Role enums at runtime to
2584 AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
2585 role enums correctly match those given in spi-roletypes.h.
2586 Re-synchronize the local names list for AccessibleRole_getName ().
2587 AccessibleRole_getName is now deprecated, since it duplicates the
2588 more reliable Accessible_getRoleName.
2589 Added some role types from Accessibility_Role.idl.
2591 * idl/Accessibility_Role.idl:
2592 Added some role types used by AtkRole.
2594 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2597 * cspi/spi_registry.c:
2599 * cspi/cspi-bonobo-listener.c:
2600 Namespaced all methods that did not begin with an "SPI_" or
2601 "Accessible" prefix to "SPI_".
2604 Homogenized internal function namespace to "cspi_" for statics.
2607 Patched tests to use the new CSPI API.
2609 * docs/reference/cspi/at-spi-cspi-sections.txt:
2610 Updated docs to reflect namespace changes, and added a number of
2611 methods to the documentation.
2613 * registryd/registry.c:
2614 Changed use of strings and string hashes in listener event
2615 matching and parse_event_string to use GQuark, which is guaranteed
2618 * registryd/registry.h:
2619 Squashed annoying warning.
2621 * idl/Accessibility_Role.idl:
2622 Extended range of available Accessibility_Role values.
2624 * cspi/spi_accessible.c:
2625 Re-ordered role names.
2627 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2629 * idl/Accessibility_Value.idl:
2630 Revert use of union back to CORBA_double, since the double type is
2631 more efficient and can contain the other types without loss of
2634 * idl/Accessibility_Accessible.idl:
2635 Added method Accessibility:Accessible:getRoleName, to complement
2636 Accessibility:Accessible:getRole.
2638 * cspi/spi_accessible.c:
2640 Added C binding for above, Accessible_getRoleName (), and changed
2641 signature of Accessible_getRole () to return an AccessibleRole.
2643 * cspi/spi-roletypes.h:
2644 Changed AccessibleRole_getName to return a char * instead of a
2645 const char *. This method is now at least temporarily deprecated
2646 in favor of asking Accessibles for their RoleNames directly.
2649 Revert to match Accessibility_Value.idl;
2653 Change signature of AccessibleValue methods to use double rather
2657 * cspi/spi_accessible.c:
2658 Changed Accessible_getRole to return an AccessibleRole enum rather
2659 than a UTF-8 string. The UTF-8 string can still be obtained via
2660 AccessibleRole_getName ().
2662 * test/test-simple.c:
2663 Add test_action. Small fixup to match API change to Accessible_getRole.
2666 Bugfix for get_action_from_servant ().
2668 2001-12-11 Michael Meeks <michael@ximian.com>
2670 * libspi/libspi.h: remove registry.h and
2671 desktop.h, deviceeventcontroller.h
2673 * libspi/Makefile.am: remove registry.[ch],
2674 desktop.[ch], deviceeventcontroller.[ch]
2676 * registryd/Makefile.am: add registry.[ch],
2677 desktop.[ch], rename registryd.c to registry-main.c.
2678 add deviceeventcontroller.[ch]
2680 2001-12-11 Bill Haneman <bill.haneman@sun.com>
2683 Replace setenv() call with putenv ().
2685 * libspi/component.c:
2686 Bugfix in AccessibleComponent_getExtents (),
2689 2001-12-11 Michael Meeks <michael@ximian.com>
2691 * libspi/image.c (impl_getImageExtents): impl.
2692 (spi_image_class_init): upd.
2695 (AccessibleImage_getImageDescription): fix daft bug
2698 * test/test-simple.c (global_listener_cb): update
2699 to only quit if not --poke
2700 (main): catch --poke.
2701 (validate_accessible): upd. dumping, call test_image
2704 * libspi/Makefile.am (IDL_DEPS): fixup the IDL
2707 * idl/Accessibility.idl: update all IDL includes.
2709 * idl/*.idl - rename to namespace - this sucks, blame
2710 mjs' bad decision for oafd.
2712 * test/test-simple.c (create_test_window): add more tests.
2713 (create_tree): split this out.
2714 (validate_accessible): bugfix.
2716 2001-12-11 Michael Meeks <michael@ximian.com>
2718 * cspi/bonobo/cspi-bonobo-listener.c:
2719 (cspi_kestroke_listener_unref),
2720 (cspi_event_listener_unref): impl. undoing previous
2721 homenous environment - for Bill.
2723 * cspi/spi_table.c (long_seq_to_array): use
2726 * cspi/spi_main.c: split out all bonoboish bits into
2729 * cspi/spi-impl.h: upd. typedefs.
2731 * cspi/spi_registry.c: update to lowlevel API,
2732 return booleans to indicate success in some places.
2734 * cspi/spi_event.c: update to lowlevel API.
2736 * cspi/bonobo/Makefile.am: add.
2738 * cspi/bonobo/cspi-lowlevel.h: add
2740 * cspi/bonobo/cspi-bonobo.c: add
2742 * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
2744 * cspi/Makefile.am: remove spi-listener-impl.[ch],
2745 (SUBDIRS): add bonobo, link in the libs.
2747 * cspi/spi-util.c: kill this file.
2749 * TODO: merge in my bits.
2751 2001-12-11 Michael Meeks <michael@ximian.com>
2753 * test/test-simple.c (test_value, test_table, main):
2754 remove unused variables causing warnings.
2756 * configure.in: cleanup checks - require gail.
2758 2001-12-11 Bill Haneman <bill.haneman@sun.com>
2761 Changed Value interface to use SValue (scalars) rather than
2762 assuming all values are floats. This allows floats, doubles,
2763 longs, shorts, and unsigned values to be manipulated.
2764 Introduced Accessibility:SValue union.
2767 Updated to use new API above, and to work correctly with GValues
2768 of different types in AtkValue.
2771 Updated to use new API above. cspi's API is as yet unchanged.
2774 Updated the Value revision action item.
2776 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2778 * test/test-simple.c:
2779 Added test_table (GtkTreeView widget in test window to follow).
2780 Un-commented test_value, added GtkRange widget.
2781 Added GtkTreeView widget with GtkListStore. It passes regression
2782 test but leaks one SPI object for some reason.
2785 Fixed bug in impl__set_currentValue.
2787 2001-12-10 Michael Meeks <michael@ximian.com>
2789 * cspi/spi_text.c: audit for exception handling,
2790 tolerating NULL object references safely etc.
2792 * cspi/spi_value.c: ditto.
2794 * cspi/spi_table.c (AccessibleTable_getSummary),
2795 (AccessibleTable_getAccessibleAt),
2796 (AccessibleTable_getRowHeader),
2797 (AccessibleTable_getColumnHeader),
2798 (AccessibleTable_getCaption): fix bugs hidden by
2800 (long_seq_to_array): impl.
2801 (AccessibleTable_getSelectedRows),
2802 (AccessibleTable_getSelectedColumns): use it.
2804 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2807 Added a TODO list (rough and short for now).
2809 * cspi/spi_hyperlink.c:
2810 * cspi/spi_hypertext.c:
2811 Fixed macro name typos, and remove use of obsolete macro in
2812 AccessibleHyperlink_getLink.
2814 * cspi/spi_action.c:
2815 * cspi/spi_accessible.c:
2816 * cspi/spi_application.c:
2817 * cspi/spi_component.c:
2818 * cspi/spi_selection.c:
2821 Documentation fixes (removed return values from ref/unref methods).
2823 2001-12-10 Michael Meeks <michael@ximian.com>
2825 * cspi/spi_action.c: audit for exception handling,
2826 tolerating NULL object references safely etc.
2828 * cspi/spi_accessible.c: ditto.
2830 * cspi/spi_component.c: ditto.
2832 * cspi/spi_editabletext.c: ditto.
2834 * cspi/spi_hyperlink.c: ditto.
2836 * cspi/spi_hypertext.c: ditto.
2838 * cspi/spi_image.c: ditto.
2840 * cspi/spi_selection.c: ditto.
2842 2001-12-10 Michael Meeks <michael@ximian.com>
2844 * configure.in: use cspi/libspi.pc.in instead.
2846 * Makefile.am (pkgconfig_DATA): upd. to match.
2848 * test/simple-at.c (report_focus_event): kill hacks around
2849 bad return values, use putenv not setenv
2851 * libspi/desktop.c (impl_desktop_get_child_at_index): don't
2852 fire ChildGone - I killed it.
2854 * libspi/component.c
2855 (impl_accessibility_component_get_extents): remove
2858 * idl/Accessible.idl: kill ChildGone exception.
2860 * cspi/*.[ch]: kill int return from ref / unref.
2862 * cspi/spi_main.c (cspi_object_add_check): fold into
2863 (cspi_object_add): here.
2865 * cspi/spi_component.c (AccessibleComponent_getExtents):
2866 handle exceptions elegantly.
2868 * cspi/spi-private.h (cspi_check_ev_return),
2869 (cspi_return_if_fail): impl.
2871 * cspi/spi_accessible.c: use extensively.
2872 (AccessibleStateSet_equals): add direct compare check.
2874 * cspi/spi_selection.c: tolerate NULL objs, and check
2875 exceptions before return.
2877 * cspi/spi-util.c (cspi_warn_ev): rename to
2878 (cspi_check_ev): this & don't pass ev in; no point.
2880 2001-12-10 Michael Meeks <michael@ximian.com>
2882 * test/test-simple.c: use putenv not setenv
2883 (get_environment_vars): more chatty if you're not using
2886 * test/simple-at.c: do the setenv so more people see the
2889 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2891 * libspi/registry.c:
2892 Changed check of CORBA_environment on notification to be a warning
2893 instead of an error for the moment, since we can recover from this
2894 error when caused by a queued notification from a dead app.
2897 Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
2898 used by all current implementors of AtkValue), and coerce to
2899 CORBA_float. (Proper general case fix may require change to Value.idl).
2901 2001-12-09 Bill Haneman <bill.haneman@sun.com>
2905 * cspi/spi_accessible.c:
2906 Documentation fixes: added user_data params to documentation for
2907 listeners and callbacks.
2909 * cspi/spi_accessible.c:
2910 Changed AccessibleStateSet_compare to return a
2911 StateSet rather than return the difference set into a third parameter.
2914 2001-12-09 Bill Haneman <bill.haneman@sun.com>
2917 Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
2918 remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
2922 Remove subdirectory po from SUBDIRS for now.
2924 * at-bridge/bridge.c:
2925 Beefed up a couple of debug printouts.
2926 One-line fix for signal notification name formatting.
2928 * libspi/accessible.c:
2929 Added assertion to spi_accessible_new ().
2931 * libspi/application.c:
2932 Put #ifdef qualifiers around a printf.
2935 Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
2937 * registryd/Makefile.am:
2939 Replaces use of XML_I18N_MERGE_SERVER_RULE with
2940 INTLTOOL_SERVER_RULE macro.
2943 Added an event listener for several ATK signals, for
2944 testing and debugging. Removed a few g_warnings.
2945 Added test output if focussed item implements the Value interface.
2947 * test/test-simple.c:
2948 Added test_value () function (known not to pass at the moment, so
2949 not actually called yet.
2951 2001-12-08 Michael Meeks <michael@ximian.com>
2953 * at-bridge/bridge.c (bridge_focus_tracker),
2954 (emit_eventv): fix the same ref. leak.
2955 (register_atk_event_listeners): don't leak.
2957 * cspi/spi-listener-impl.c (cspi_event): more
2958 protection from client code.
2960 * test/test-simple.c (test_desktop): unref the app.
2962 * test/Makefile.am: upd. TESTS.
2964 * at-bridge/bridge.c (bridge_exit_func): release the registry.
2966 * test/keysynth-demo.c (keysynth_exit): unref the listeners.
2968 * cspi/spi_accessible.c (Accessible_queryInterface): constify.
2970 * cspi/spi_registry.c: constify in strings.
2971 (deregisterGlobalEventListenerAll): don't release the ref.
2973 * cspi/spi.h: start removing redundant / conflicting
2974 gtkdoc comments, making the API readable at a glance :-)
2976 * cspi/spi_event.c (AccessibleEventListener_unref): impl.
2978 * test/keysynth-demo.c (keysynth_exit, main): upd.
2980 * test/simple-at.c (main, simple_at_exit): upd.
2982 * test/test-simple.c (unutterable_horror): kill.
2983 (utterable_normal_derefs): kill.
2984 (main): upd & do a setenv before gtk_init, so that we
2985 can use memprof - and to save the pain of remembering
2986 this, if we're running under memprof - don't exit.
2988 * cspi/spi_main.c (SPI_exit): return exit status
2990 (SPI_event_quit): impl.
2991 (SPI_event_main): simplify.
2992 (cspi_is_gnome_app): kill.
2993 (SPI_init): kill isGNOMEapp arg.
2995 * at-bridge/bridge.c (register_atk_event_listeners):
2996 re-instate the unref.
2997 (bridge_exit_func): don't re-activate the registry,
2998 protect vs. theoretical re-entry, use the
2999 AT_BRIDGE_SHUTDOWN env. var to determine whether to
3000 assert a clean shutdown - for regression tests.
3002 2001-12-08 Abel Cheung <maddog@linux.org.hk>
3004 * configure.in: Comment out dummy i18n support for now,
3005 otherwise it fails to build.
3006 * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
3007 EXTRA_DIST. They are missing in tarball.
3009 2001-12-07 Michael Meeks <michael@ximian.com>
3011 * util/magnifier.c: kill bonobo activation reg. race.
3013 * libspi/component.c
3014 (impl_accessibility_component_get_extents): make it match
3017 * libspi/registry.c (_registry_notify_listeners):
3018 re-remove X headers & reconcile conflicts.
3019 (spi_listener_struct_free): bad conflict resolve.
3020 (impl_accessibility_registry_register_application):
3021 more bad merging fixed.
3022 (impl_accessibility_registry_deregister_application): ditto.
3023 (spi_registry_new): ditto.
3024 (spi_registry_init): don't have an applications field.
3026 [ merge fixups2 branch to here ]
3027 2001-12-07 Michael Meeks <michael@ximian.com>
3029 * test/simple-at.c (report_focus_event),
3030 (report_focussed_accessible): remove g_warning debug.
3032 2001-12-07 Michael Meeks <michael@ximian.com>
3034 * test/test-simple.c (validate_tree): comment out some checks.
3035 (test_desktop): app now not registered idly - horay.
3037 2001-12-07 Michael Meeks <michael@ximian.com>
3039 * cspi/spi_registry.c
3040 (registerAccessibleKeystrokeListener): clean, stop it leaking
3041 great swathes of memory, and device event controller references.
3042 ensure we always pass valid sequences.
3043 (deregisterAccessibleKeystrokeListener): ditto.
3044 (generateKeyEvent): upd.
3046 * at-bridge/bridge.c (bridge_key_listener): handle
3047 registry dead exception gracefully.
3048 (bridge_focus_tracker, emit_eventv): free ev.
3050 * test/simple-at.c (report_focus_event): fix polarity.
3052 * libspi/application.c (notify_listeners): kill the ev
3053 argument, and make sure we init the ev we use.
3054 (spi_application_object_event_listener): split out a chunk
3055 (get_atk_object_ref): here & fixup.
3056 (reverse_lookup_name_for_toolkit_event): make const.
3057 (spi_application_toolkit_event_listener): fixup, kill leaks
3060 * at-bridge/bridge.c (register_atk_event_listeners):
3061 don't unref the noop object - causes grief.
3063 * libspi/registry.c: remove the X headers.
3064 turn off the debug churn.
3066 * libspi/accessible.c (spi_accessible_new_return): only
3067 release the ref if we are supposed to [doh]
3069 * test/simple-at.c (report_button_press, report_focus_event):
3070 guard vs. unexpected exit.
3072 * at-bridge/bridge.c (gtk_module_init): prune printf.
3073 (bridge_exit_func): fix app unref.
3075 * libspi/Makefile.am: don't install registry or desktop.h
3077 * libspi/*.h: update includes.
3079 * libspi/application.h: don't include ourself, or
3080 other redundant headers.
3082 2001-12-06 Michael Meeks <michael@ximian.com>
3084 * libspi/accessible.c
3085 (get_accessible_from_servant): impl.
3086 Upd. all CORBA impl.s to use it killing cut and paste.
3088 * cspi/spi_main.c (cspi_cleanup): guard vs. double
3090 (SPI_init): register atexit cleanup handler here.
3092 2001-12-06 Michael Meeks <michael@ximian.com>
3094 * at-bridge/bridge.c (gtk_module_init): g_error on
3095 activation exception
3097 2001-12-06 Michael Meeks <michael@ximian.com>
3099 * at-bridge/bridge.c (gtk_module_init): some sort of
3100 confusing merge clash - reverted.
3101 (bridge_idle_init): ditto.
3103 * test/test-simple.c (main, utterable_normal_derefs):
3104 merge from Bill - somehow not committed.
3106 2001-12-06 Michael Meeks <michael@ximian.com>
3108 * libspi/value.c (spi_value_class_init): upd.
3109 (spi_value_finalize): kill.
3111 * libspi/table.c (spi_table_finalize): kill.
3112 (spi_table_interface_new): upd.
3113 (spi_table_class_init): upd.
3114 (get_table_from_servant): impl.
3115 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3117 * libspi/selection.c (spi_selection_finalize): kill.
3118 (spi_selection_interface_new): upd.
3119 (spi_selection_class_init): upd.
3120 (get_selection_from_servant): impl.
3121 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3123 * libspi/relation.c (spi_relation_finalize): kill.
3124 (spi_relation_class_init, spi_relation_new): upd
3126 * libspi/image.c (spi_image_finalize): kill.
3127 (spi_image_class_init): upd.
3128 (spi_image_interface_new): upd.
3129 (get_image_from_servant): impl.
3130 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3132 * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3133 (spi_hyperlink_finalize): kill.
3134 (spi_hyperlink_new): upd.
3135 (get_hyperlink_from_servant): impl.
3136 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3138 * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3139 (spi_hypertext_finalize): kill.
3140 (spi_hypertext_class_init): upd.
3141 (get_hypertext_from_servant): impl.
3142 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3144 * libspi/editabletext.c (spi_editable_text_finalize): kill.
3145 (spi_editable_text_interface_new): upd.
3146 (get_editable_text_from_servant): impl.
3147 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3149 * libspi/text.c (get_text_from_servant): impl.
3150 All impls - update to use it killing more cut and paste,
3151 also fix bad string returns on duff args ( a somewhat
3152 impossible case to handle - but hey ).
3153 (spi_text_construct): impl.
3154 (spi_text_interface_new): upd.
3155 (spi_text_object_finalize): kill.
3157 * libspi/component.c
3158 (accessibility_component_object_finalize): kill.
3159 (spi_component_class_init): upd.
3160 (get_component_from_servant): impl. helper to kill cut & paste.
3161 (impl_accessibility_component_contains):
3162 (impl_accessibility_component_get_accessible_at_point):
3163 (impl_accessibility_component_get_position):
3164 (impl_accessibility_component_get_extents):
3165 (impl_accessibility_component_get_mdi_z_order):
3166 (impl_accessibility_component_get_layer):
3167 (spi_component_interface_new): upd.
3169 * libspi/action.c (spi_action_finalize): kill.
3170 (spi_action_class_init): upd. inherit from SpiObject.
3171 (spi_action_interface_new): upd.
3172 (get_action_from_servant): impl. helper to reduce cut & paste.
3173 (impl_getKeyBinding, impl_getName, impl_doAction),
3174 (impl_getDescription): Use it everywhere.
3176 * cspi/spi_main.c (get_live_refs): a pointer hash.
3177 (spi_object_hash, spi_object_equal): comment out.
3178 There are issues with CORBA object hashing that need
3181 * libspi/application.c (spi_application_init),
3182 (spi_application_new): upd.
3184 * libspi/accessible.c (spi_accessible_object_finalize): kill.
3185 (spi_accessible_class_init): upd.
3186 s/accessible/object/ in epv methods.
3188 2001-12-05 Bill Haneman <bill.haneman@sun.com>
3190 * at-bridge/bridge.c:
3191 Reorder the bridge initialization into the bridge gtk_module_init,
3192 an immediate call to bridge_register_app, and an idle_add for
3193 register_atk_event_listeners (the only code that *must* wait until
3194 GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
3195 the activation, creates the application's Accessible object, and
3196 queues the bridge_idle_init function. Restored call to
3197 Accessibility_Registry_deregisterApplication().
3198 Prior to making this call we obtain a new reference to the
3199 registry, which is a temporary hack that helps us handle apps that
3200 shut down the bonobo mainloop before we get there.
3202 * libspi/registry.c:
3203 Fix string leakage in debug block, and don't segv if a an app
3204 dies before its event notifications have been propagated.
3207 Modify cspi_check_ev() to call g_warning() rather than g_error(),
3208 as stopgap measure until we get proper exception handling when
3209 objects die during or before interrogation.
3213 Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
3214 Also changed default value of is_gnome_app to TRUE.
3217 * test/keysynth-demo.c:
3218 Changed use of SPI_init and SPI_event_main to reflect API change above.
3221 Made report_focus_event check the warning value from getName
3222 before reporting on focussed accessible; simplifies handling of
3223 notifications from dead objects.
3225 * test/test-simple.c: (Changes not in this patch since source is
3228 2001-12-05 Michael Meeks <michael@ximian.com>
3230 * registryd/registryd.c (main): protect against
3231 bonobo-activation startup race condition.
3233 * cspi/spi_main.c (cspi_object_add_check): cope
3234 with the exception elegantly.
3236 * idl/Accessible.idl: decl. ChildGone
3238 * libspi/desktop.c (spi_desktop_dispose): impl.
3239 (spi_desktop_class_init): upd.
3240 (spi_desktop_add_application),
3241 (spi_desktop_remove_application),
3242 (abnormal_application_termination): impl.
3243 (impl_desktop_get_child_at_index): re-impl.
3246 (impl_accessibility_registry_deregister_application),
3247 (impl_accessibility_registry_register_application):
3248 kill excessive debug clutter.
3250 * test/test-simple.c (test_misc): test some NULL
3251 tolerance. (main): upd.
3253 * cspi/spi_main.c (cspi_accessible_is_a): a NULL
3254 implements no interfaces - so let's not crash.
3256 * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
3258 * libspi/accessible.c (spi_accessible_new_return): impl.
3259 helper to calm the cut and paste, to cope with
3260 NULL AtkObjects effectively and efficiently, and to kill
3261 the referencing bugs.
3263 * libspi/table.c (impl_getAccessibleAt),
3264 (impl_getRowHeader, impl_getColumnHeader): upd.
3266 * libspi/hyperlink.c (impl_getObject): upd.
3268 * libspi/accessible.c
3269 (impl_accessibility_accessible_get_child_at_index): upd.
3271 * libspi/component.c
3272 (impl_accessibility_component_get_accessible_at_point): upd.
3274 * test/test-simple.c (test_editable_text, test_text): impl.
3277 * cspi/spi_editabletext.c
3278 (AccessibleEditableText_insertText): constify.
3280 * test/test-simple.c (focus_me): make more robust.
3282 * libspi/accessible.c: remove some printfs in methods that
3283 we test and work fine, so we can get a clean tree dump.
3285 * test/test-simple.c (validate_accessible),
3286 (validate_tree): make tree dumping pretty too.
3288 * at-bridge/bridge.c (bridge_signal_listener): upd. so
3289 it builds without debug on.
3291 * test/test-simple.c (validate_accessible): fix the most
3294 * cspi/spi_main.c (spi_object_release): leave the nicely
3295 blanked memory around if in debug mode.
3297 * cspi/spi-listener-impl.c (cspi_event): use add_check.
3299 [committed to fixups2]
3300 2001-12-05 Michael Meeks <michael@ximian.com>
3302 * libspi/editabletext.c
3303 (spi_editable_text_class_init): g_type_class_peek_parent,
3304 not interface peek - so we finalize cleanly.
3306 * libspi/accessible.c (spi_accessible_new): kill debug.
3308 * test/test-simple.c (validate_accessible): fix ref.
3309 leak, print strings before freeing them; sigh, comment a
3310 chunk out due to strangeness.
3311 (validate_tree): unref the child after use.
3313 * cspi/spi_component.c (AccessibleComponent_getLayer):
3314 add missing break statement, switch on zlayer not the
3315 uninitialized retval.
3317 * cspi/spi_main.c (cspi_object_add): add assert, local ref
3318 before (possibly re-entering) remote unref.
3320 * test/simple-at.c (main): unref the desktop.
3322 * cspi/spi_accessible.c (cspi_accessible_is_a): move
3325 * cspi/spi_main.c (cspi_accessible_is_a): here to
3326 isolate bonobo API usage more.
3328 * libspi/registry.c (impl_accessibility_registry_register_application):
3329 prune bogus comment.
3331 2001-12-04 Michael Meeks <michael@ximian.com>
3333 * test/test-simple.c (validate_tree): upd.
3334 IndexInParent check to make it more lucid.
3335 (validate_accessible): dump the tree.
3337 * libspi/accessible.c (de_register_public_ref),
3338 (get_public_refs): impl.
3339 (spi_accessible_new): make more efficient & intuitive.
3340 Now IndexInParent check works.
3342 2001-12-04 Michael Meeks <michael@ximian.com>
3344 * cspi/spi-util.h: remove.
3346 * cspi/spi.h: move SPI_freeString here
3348 * libspi/component.c (impl_accessibility_component_get_layer):
3350 (impl_accessibility_component_get_mdi_z_order): ditto,
3351 return -1 on error - is this ok ?
3353 * test/test-simple.c (test_application): impl.
3355 * cspi/spi_accessible.c (Accessible_getApplication),
3356 (Accessible_isApplication): impl.
3358 * libspi/registry.c (spi_listener_struct_free): release
3359 the CORBA reference too.
3361 * libspi/accessible.c
3362 (impl_accessibility_accessible_get_parent): fix ref leak.
3364 * libspi/registry.c (spi_registry_new): make the registry
3365 immortal - we don't want it to go away ever.
3367 * libspi/application.c
3368 (spi_accessible_application_finalize): impl. cleanup.
3370 * cspi/spi_registry.c
3371 (deregisterGlobalEventListenerAll),
3372 (deregisterGlobalEventListener),
3373 (deregisterAccessibleKeystrokeListener): fix ref leak.
3375 * cspi/spi_main.c (SPI_init): remove redundant ref.
3377 * test/test-simple.c (unutterable_horror): impl. to force a
3382 (impl_accessibility_registry_deregister_application): release
3383 the application when we de-register it.
3385 * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
3386 until we have the infastructure to get it right.
3388 2001-12-03 Michael Meeks <michael@ximian.com>
3390 * libspi/Makefile.am: only build eventlistener.[ch]
3392 * libspi/accessible.c
3393 (impl_accessibility_accessible_get_child_at_index): don't leak.
3395 * at-bridge/bridge.c (bridge_exit_func): cope with an exit
3396 before we hit the idle handler.
3398 * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
3399 debugging than exit.
3401 * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
3403 * libspi/listener.c (impl_notify_event): check source
3404 not NIL before unref.
3406 * libspi/registry.c (impl_registry_notify_event): ditto.
3408 * libspi/eventlistener.c
3409 (impl_accessible_event_notify_event): unref the source.
3411 * libspi/accessibleeventlistener.c
3412 (impl_accessible_event_notify_event): unref the source.
3414 * idl/Event.idl: remove 'hash_id' attribute - of no
3417 * libspi/application.c (notify_listeners): upd list
3419 (spi_application_object_event_listener),
3420 (spi_application_toolkit_event_listener): upd to do correct
3424 (_registry_notify_listeners): update.
3425 (parse_event_type): this method also leaks like a sieve.
3426 (impl_accessibility_registry_deregister_global_event_listener):
3427 fix ETYPE_WINDOW case.
3429 * libspi/application.c
3430 (impl_accessibility_application_register_object_event_listener):
3433 * libspi/hyperlink.c (impl_getObject): fix ref mistake.
3435 * libspi/hypertext.c (impl_getLink): ditto.
3437 * cspi/spi_main.c (cspi_object_add): remove
3438 bogus CORBA_Object_duplicate.
3440 * cspi/spi-listener-impl.c (cspi_event): dup/ref
3443 * cspi/spi_accessible.c
3444 (Accessible_getRelationSet): fix leak / referencing issue.
3446 * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
3447 (cspi_object_add, cspi_object_unref): upd.
3448 (spi_object_release, get_live_refs): impl.
3449 (cspi_cleanup): simplify.
3451 * *.[ch]: s/boolean/SpiBoolean/
3453 * cspi/spi_accessible.c (role_names): actualy order so it
3454 corresponds with the enum !
3456 * test/test-simple.c (test_roles): check some role strings
3457 vs. enums to detect offset errors.
3459 2001-12-01 Michael Meeks <michael@ximian.com>
3461 * cspi/spi_main.c (cspi_object_add_check): impl. helper.
3463 * cspi/spi_accessible.c (Accessible_getChildAtIndex):
3465 (Accessible_getChildAtIndex): use cspi_add_check so we
3466 check the ev before using a (possibly) invalid value.
3468 * libspi/accessible.c
3469 (impl_accessibility_accessible_get_parent): don't segv
3472 * at-bridge/bridge.c (gtk_module_init): upd.
3473 (bridge_property_event_listener): don't leak strings
3475 (bridge_state_event_listener),
3476 (bridge_property_event_listener): don't use a static
3477 buffer in case of recursive event emission &
3478 re-enterancy - split out the swathe of cut and paste
3480 (emit_eventv): and fix 2 ref leaks here & comply to the
3482 (bridge_register_app): rename to
3483 (bridge_idle_init): this and kill arg parsing, split
3484 various inits & bonobo-activation registration to module
3485 init time, kill referencing error.
3486 (bridge_exit_func): fix the same leak.
3487 (bridge_focus_tracker): don't leak event structures
3489 (bridge_signal_listener): more leakage and cut & paste
3491 (bridge_key_listener): return the result - FIXME is
3492 this polarity correct ?
3493 (accessibility_keystroke_from_atk_key_event): rename
3494 (accessibility_init_keystroke_from_atk_key_event): and stop
3496 (gtk_module_init): return a value - not that it is checked by
3498 (bridge_key_listener): register my horror at casting between
3499 IDL defined structs.
3500 (bridge_get_registry): kill - not used.
3502 * cspi/spi_accessible.c (Accessible_getRole): make return const.
3504 * test/test-simple.c (test_roles): impl.
3505 (test_desktop, validate_accessible, validate_tree): impl.
3507 * cspi/spi_accessible.c (role_names): fixup bogus
3508 MAX_ROLES setup, make constants const for efficient linkage
3509 (AccessibleRole_getName): conform to coding style, make
3512 2001-11-30 Michael Meeks <michael@ximian.com>
3514 * cspi/spi.h: add missing prototype.
3516 * libspi/registry.c (spi_listener_struct_new): fix sig.
3518 * test/Makefile.am: add test-simple
3520 * test/test-simple.c: add
3522 * test/test.sh: add.
3524 * cspi/spi_main.c (SPI_init): make SPI_inited module global,
3526 * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
3527 do it straight - since otherwise we often get an activation race.
3529 [ work before Bill duplicated a chunk of it ... ]
3530 2001-11-30 Michael Meeks <michael@ximian.com>
3532 * libspi/keystrokelistener.c
3533 (spi_keystroke_listener_class_init): fixup arg
3536 * libspi/eventlistener.c
3537 (spi_event_listener_class_init): ditto.
3539 * tests/test.sh: add.
3541 * cspi/spi-listener-impl.h: update macros.
3543 * cspi/spi-listener-impl.c
3544 (cspi_event_listener_remove_callback): add
3545 correct pre-conditions.
3547 * cspi/spi_main.c (SPI_exit): guard vs. double
3548 exits, exit the mainloop nicely.
3549 (SPI_event_main): make more sense.
3550 (SPI_init): move the atexit evilness here so we
3551 always do it (yuck).
3552 (SPI_event_main): upd.
3554 * test/simple-at.c: update for listener changes.
3556 * registryd/registryd.c (main): prune kruft.
3558 * libspi/libspi.h: upd.
3560 * libspi/eventlistener.[ch]: rename broken macros.
3562 * libspi/accessibleeventlistener.[ch]: remove.
3564 * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
3566 * test/test-simple.c: Add - automated tests.
3568 * cspi/spi-listener-impl.c (cspi_event),
3569 (cspi_key_event): add user_data to invoke.
3570 (cspi_keystroke_listener_finalize): impl.
3571 (cspi_keystroke_listener_class_init): upd.
3574 (createAccessibleEventListener),
3575 (AccessibleEventListener_addCallback),
3576 (createAccessibleKeystrokeListener),
3577 (AccessibleKeystrokeListener_addCallback): upd.
3579 * libspi/deviceeventcontroller.c
3580 (spi_device_event_controller_check_key_event): add public proto.
3583 (impl_accessibility_registry_deregister_global_event_listener):
3584 always init listeners.
3585 (_registry_notify_listeners): yes it is.
3587 * cspi/spi-listener-impl.c (cspi_key_event):
3589 (cspi_event_listener_finalize): impl.
3590 (cspi_event_listener_class_init): hook up.
3591 (event_handler_new, event_handler_free),
3592 (event_list_remove_by_callback): impl.
3593 (cspi_event_listener_remove_callback),
3594 (cspi_keystroke_listener_remove_callback),
3595 (cspi_keystroke_listener_add_callback),
3596 (cspi_event_listener_add_callback): upd.
3598 * libspi/keystrokelistener.c
3599 (keystroke_listener_object_finalize): kill
3600 (spi_keystroke_listener_class_init): upd.
3601 (spi_keystroke_listener_add_callback),
3602 (spi_keystroke_listener_remove_callback): kill,
3604 (impl_key_event): prune drasticaly.
3606 * libspi/eventlistener.c
3607 (spi_event_listener_add_callback),
3608 (spi_event_listener_remove_callback): kill, use
3610 (impl_accessible_event_notify_event): upd.
3611 (spi_event_listener_object_finalize): remove.
3613 * libspi/Makefile.am: use eventlistener.[ch]
3615 2001-12-04 Bill Haneman <bill.haneman@sun.com>
3617 * libspi/registry.c (_registry_notify_listeners):
3618 Changed listener loop iteration to use preferred convention.
3619 Got rid of string memory leaks caused be calling g_strconcat
3620 inside function calls.
3622 * libspi/registry.c (parse_event_type):
3623 Stopped g_strconcat memory leaks, free the g_strsplit return,
3624 g_strdup the split pieces when used, etc.
3626 2001-12-04 Bill Haneman <bill.haneman@sun.com>
3629 Change method 'compare' to return a 'difference set' rather than
3630 taking a StateSet as an out parameter (more Java-friendly).
3632 * idl/Accessible.idl:
3633 Added CORBA struct 'BoundingBox', to faciliate API changes below:
3635 * idl/Component.idl:
3637 Changed methods 'getExtents' and 'getImageExtents' in these
3638 interfaces to return a BoundingBox structure.
3639 (getPosition and getSize are redundant and possibly should be
3640 removed, rather than creating a corresponding Point struct.)
3642 * cspi/spi_component.c:
3643 Modify implementation of getExtents to reflect the above IDL
3648 Add (missing) AccessibleImage_getExtents () API.
3650 * docs/reference/cspi/at-spi-cspi-sections.txt:
3651 Added AccessibleImage_getImageExtents () to docs.
3653 2001-12-03 Bill Haneman <bill.haneman@sun.com>
3655 * idl/Component.idl:
3656 Added two methods, getLayer () and getMDIZOrder (), to reflect
3657 the new ATK methods atk_object_get_layer and
3658 atk_object_get_mdi_z_order. (Which arguably should be part of the
3659 AtkComponent API and AtkObject). Also added an enum,
3660 ComponentLayer, for the first method's return value.
3662 * libspi/component.c:
3663 Added implementations for these methods.
3665 * cspi/spi_component.c:
3667 Added cspi binding methods for above,
3668 AccessibleComponent_getLayer() and
3669 AccessibleComponent_getMDIZOrder().
3670 Added cspi enum 'AccessibleComponentLayer'.
3672 * docs/reference/cspi/at-spi-cspi-sections.txt:
3673 Added above methods to docs.
3677 Changed typedef for 'boolean' type (and all references to it) to
3678 SPIBoolean, to avoid keyword clashes with C++.
3681 Changed usages of 'boolean' to SPIBoolean.
3683 * test/keysynth-demo.c:
3684 Changed usages of 'boolean' to 'gboolean' (since this is a gnome
3685 app), except where SPIBoolean is required by the callbacks API.
3687 2001-12-02 Bill Haneman <bill.haneman@sun.com>
3689 * cspi/spi_registry.c:
3690 Removed obsolete X event loop for passive keygrabs (which now
3693 * registryd/registryd.c:
3694 Removed unnecessary call to gdk_init() [cruft]. This also allows
3695 removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
3698 2001-11-28 Bill Haneman <bill.haneman@sun.com>
3700 * docs/reference/cspi:
3701 Included docs for SPI_freeString in generated documentation.
3704 Renamed spi_freeString to SPI_freeString, for consistency. Added
3705 documentation for this function.
3708 Renamed spi_freeString to SPI_freeString, for consistency.
3709 Removed obsolete method declaration string_from_corba_string.
3711 * test/keysynth-demo.c:
3712 Small tweak to comments.
3715 Stopped leaking the strings returned from CSPI.
3717 2001-11-28 Bill Haneman <bill.haneman@sun.com>
3719 Merged Michael's branch (see his ChangeLog entries below).
3721 * at-bridge/bridge.c: Explicitly hold a ref to the registry while
3722 bridge is alive, release on exit.
3724 * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
3725 Fix type check macro.
3728 Added AccessibleKeystrokeListener_unref() method to reduce leakage.
3731 Added is_gnome_app static, and method cspi_is_gnome_app(),
3732 so we can call the appropriate shutdown routine at exit in SPI_exit.
3734 * cspi/spi_main.c (cspi_object_ref):
3735 Duplicate the corba object passed in, since we're keeping it around.
3737 * cspi/SPI_exit.c, cspi_cleanup:
3738 Moved the releasing of the live refs to its own function, so we
3739 can put it in g_atexit (). Call the appropriate shutdown API
3740 depending on whethe calling client is a gnome app or not
3741 (bonobo_main_quit or CORBA_ORB_shutdown).
3743 * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
3744 Unref the listener when this method is called, after
3745 deregistration. Updated the API docs to note this behavior.
3747 * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
3748 Bugfixes: Ref the bonobo object when returning a parent or child
3749 reference, or an AccessibleRelation. Generally made sure
3750 BonoboObject refcount is incremented whenever we return an
3753 * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
3754 Fixed typo/bug in signal declaration.
3756 * libspi/accessibleeventlistener.h:
3759 * libspi/application.c (spi_application_new):
3760 Fixed leak in initialization.
3763 Remembered to increment bonobo-object refcount when returning
3764 children (applications) from desktop object.
3765 Added (empty) finalize method.
3767 * libspi/deviceeventcontroller.c:
3768 Hold a ref to listeners inside DEControllerKeyListeners.
3769 Added dec_key_listener_free() method. Use prepend instead of
3770 append in key_listener list. Fixed some refcount madness and
3771 leaks in the listener registration/deregistration - deregistration
3772 now calls dec_key_listener_free() on listeners, and on the
3773 temporarily constructed dec_key_listener() used to perform the search/match.
3775 * libspi/hypertext.c (spi_hypertest_finalize):
3776 Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
3777 class. Also fixed spi_hypertext_interface_new() and
3778 SpiHypertextClass. Fixed a couple of paren-whitespace formatting bugs.
3780 * libspi/hypertext.h:
3781 Removed pointless and duplicate AtkObject pointer from
3784 * libspi/keystrokelistener.c:
3785 Fixed incorrect type of keystroke_listener_parent_class,
3786 renamed keystroke_listener_object_finalize to
3787 spi_keystroke_listener_object_finalize.
3788 Fixed typo in signal declaration
3789 (spi_keystroke_listener_class_init).
3791 * libspi/registry.c:
3792 Added funcsions spi_listener_struct_new() and
3793 spi_listener_struct_free() to help with memory management issues.
3794 We also now use these methods instead of gnew + poking stuff into
3795 the struct, and to decrement listener counts/free the listeners
3796 when deregistering them.
3797 Fix more refcount bugs in getDesktop() and
3798 getDeviceEventController().
3801 De-ref the desktop after enumerating the applications. Explicitly
3802 decrement the refcounts on the created listeners on exit (using
3803 _unref for keystroke listeners, and via the
3804 deregisterGlobalEventListenerAll command for other event
3807 2001-11-27 Michael Meeks <michael@ximian.com>
3809 * cspi/spi-listener.h: fixup enum.
3811 2001-11-27 Michael Meeks <michael@ximian.com>
3813 * cspi/spi-listener-impl.c (cspi_event_listener_new),
3814 (cspi_keystroke_listener_new): Use the cspi variants.
3816 2001-11-26 Michael Meeks <michael@ximian.com>
3818 * test/keysynth-demo.c: fix 2 compile warnings, missing
3821 * test/simple-at.c (report_focussed_accessible),
3822 (report_focus_event, report_button_press),
3823 (check_property_change, is_command_key),
3824 (report_ordinary_key_event, report_command_key_event): upd.
3826 * util/mag_client.h: include pre-requisites.
3828 * libspi/accessibleeventlistener.c
3829 (spi_event_listener_object_finalize): free any lingering
3832 * libspi/keystrokelistener.c
3833 (keystroke_listener_object_finalize): ditto.
3835 * cspi/spi-listener-impl.[ch]: Add to implement cspi style
3836 callbacks, with cspi types.
3838 * cspi/spi_event.c (createAccessibleEventListener): chain to
3839 (AccessibleEventListener_addCallback): here.
3840 (createAccessibleKeystrokeListener): chain to
3841 (AccessibleKeystrokeListener_addCallback): here.
3843 * libspi/keystrokelistener.c
3844 (spi_keystroke_listener_class_init): add signal.
3845 (impl_key_event): emit the event.
3846 (boolean_handled_accumulator): impl.
3847 (marshal_BOOLEAN__POINTER): add, gack.
3849 * libspi/accessibleeventlistener.c
3850 (spi_event_listener_class_init): add signal.
3851 (impl_accessible_event_notify_event): emit the signal &
3852 make the loop efficient.
3853 (spi_event_listener_add_callback): prepend the callback.
3855 * libspi/accessibleeventlistener.h: add an 'event' signal,
3856 decl type on callback.
3858 * libspi/keystrokelistener.h: ditto.
3860 * cspi/spi-listener.h: make methods typesafe and
3861 make them use the new event typedefs.
3863 * test/simple-at.c (report_focussed_accessible):
3864 include mag_client.h
3865 Use *(void *)text_interface not the other thing.
3867 * configure.in: add gtk to registryd bits - since we use
3870 * util/magnifier.c: include libbonobo.h
3872 2001-11-25 Bill Haneman <bill.haneman@sun.com>
3874 * test/keysynth-demo.c:
3875 Turned this into a simple scanning keyboard, to demonstrate the
3876 use of g_timeout_add () as a means of creating timers for
3877 scanning, and the use of GtkStyle for visually indicating when
3878 virtual keyboard elements are selected.
3880 keysynth-demo now listens to any keyboard keys with zero-valued
3881 keycodes (i.e. 'unused' keys) and interprets them as
3884 Reworked the shiftlatch code so that shift-down state isn't held
3885 for long periods (it's only synthesized immediately prior to
3886 the keysynth event it's modifying). Note that shiftlatch in this
3887 demo is a convenience, not intended to take the place of AccessX
3888 which is the better choice for getting 'sticky' modifier keys.
3890 * libspi/deviceeventcontroller.c:
3891 * at-bridge/bridge.c:
3892 * cspi/spi_registry.c:
3893 Removed some debug print stuff, and put other verbosity in #ifdef
3898 Implemented some more of the magnifier IDL for the simple
3899 magnifier: namely, getZoomRegionParams.
3900 Added mag_x and mag_y members to MagnifierData struct, aid of this
3902 Added GtkWindow::realize signal handler to magnifier, to keep it
3903 from receiving keyboard focus from the WM.
3905 2001-11-23 Mark McLoughlin <mark@skynet.ie>
3907 * cspi/spi-private.h: my guess at what michael forgot
3908 before he ran off to NZ :-)
3910 2001-11-23 Michael Meeks <michael@ximian.com>
3912 * cspi/spi_event.c (AccessibleEventListener_removeCallback):
3913 comment out non existant method invoke so we link.
3915 * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
3916 use bonobo_exception_get_text for more friendly warnings.
3918 * cspi/spi.c (Obj_Add): move into spi_main & rename
3919 spi_object_add; kill spi.c
3921 * cspi/spi_registry.c
3922 (deregisterGlobalEventListener),
3923 (deregisterGlobalEventListenerAll),
3924 (registerGlobalEventListener): fix exception leaks.
3926 * cspi/spi_main.c (spi_exception): impl. helper, so we
3927 don't leak exceptions.
3929 * cspi/spi_selection.c
3930 (AccessibleSelection_deselectSelectedChild): return the
3933 * cspi/spi_main.c (spi_ev): impl; hack - gack.
3934 (spi_registry): ditto.
3935 (SPI_init): guard against double inits.
3937 * cspi/*.c: use spi_ev (), and spi_registry () where
3938 appropriate - a temporary hack until we have something
3939 better. Use spi_object_add
3941 2001-11-22 Michael Meeks <michael@ximian.com>
3943 * cspi/Makefile.am: re organise, install the headers.
3945 * cspi/*.h: add G_BEGIN/END_DECLS
3947 2001-11-22 Bill Haneman <bill.haneman@sun.com>
3950 Added non-preemptive keylistener for key events with no modifiers
3951 and shift-only modifier.
3953 * libspi/keystrokelistener.c:
3954 Removed some verbose diagnostics printout.
3956 * cspi/spi_registry.c:
3957 Fixed a bug that caused all key listeners to be registered as
3960 * libspi/deviceeventcontroller.c:
3961 Fixed bug that caused XGrabKey (preemptive key grab) to be called
3962 for non-preemptive key masks.
3965 2001-11-22 Bill Haneman <bill.haneman@sun.com>
3967 * docs/reference/idl/at-spi-idl-docs.sgml:
3968 * docs/reference/idl/at-spi-idl-sections.txt:
3969 * docs/reference/idl/at-spi-idl-overrides.txt:
3970 Added missing files.
3972 * docs/reference/Makefile.am:
3973 removed idl from SUBDIRS until we can figure a way to get gtk-doc
3974 to scan the IDL files :-(
3979 Added .cvsignore files.
3981 2001-11-21 Bill Haneman <bill.haneman@sun.com>
3983 * libspi/deviceeventcontroller.c:
3984 * libspi/keystrokelistener.c:
3986 * cspi/spi_registry.c:
3987 Added filters for KeySets, KeyEventSeq, and event types to key
3988 event dispatching, so listeners should only receive those events
3989 that they requested :-)
3991 2001-11-21 Bill Haneman <bill.haneman@sun.com>
3996 * docs/reference:Makefile.am:
3997 * docs/reference/cspi:
3998 * docs/reference/cspi:Makefile.am:
3999 * docs/reference/cspi:tmpl:
4000 * docs/reference/cspi:tmpl:*.sgml:
4001 * docs/reference/idl:
4002 * docs/reference/idl:Makefile.am:
4003 * docs/reference/idl:at-spi-idl-sections.txt:
4004 * docs/reference/idl:at-spi-idl-docs.sgml:
4005 * docs/reference/idl:tmpl:
4006 * docs/reference/idl:tmpl:*.sgml:
4008 Restructured docs directory to allow separate 'reference' docs
4009 section, and forked idl and cspi docs. Added the sgml template
4010 files to CVS. Added the first sections/structural sgml for the
4013 2001-11-21 Laszlo Peter <laca@ireland.sun.com>
4015 * configure.in, libspi/Makefile.am: find libXtst.
4017 2001-11-21 Michael Meeks <michael@ximian.com>
4019 * test/accessx-gui.c: s/spi_value/value/ - doh.
4021 * libspi/base.[ch]: add.
4023 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4025 * idl/Accessible.idl:
4026 * idl/Application.idl:
4029 Started gtk-doc cleanup on IDL.
4031 * libspi/deviceeventcontroller.c:
4032 Added and connected non-preemptive key notification from the
4033 toolkits (in addition to the pre-emptive support from XServer
4034 which we had before, but which causes 'focus flashing'). Filters
4035 are presently limited to key modifiers and global/non-global,
4036 KeySets are presently ignored, as are KeyEvent masks.
4038 Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4039 structs into the persistant structure rather than just storing
4040 pointers to things that might not persist across servant
4043 The XGrabKey call now does async keygrabs, because synchronous
4044 ones were deadlocking with GDK_event code in a very nasty way.
4046 Added boolean to internal method notify_keylisteners, to indicate
4047 whether the event came from the 'toolkit source' or the 'global
4048 (XServer) source' - this is used in the notification process to
4049 determine which listeners to send the event to.
4051 deviceeventcontroller.c is now warning-free.
4053 * libspi/registry.c:
4054 Fixed regression in application de-registration.
4055 Also fixed some really brain-dead weirdness having to do with
4056 event dispatching - event structs are now duplicated before being
4057 re-marshalled in the dispatch to listeners. This also fixes a
4058 Solaris build problem.
4061 2001-11-20 Michael Meeks <michael@ximian.com>
4064 (impl_accessibility_registry_deregister_global_event_listener):
4067 * libspi/deviceeventcontroller.c
4068 (spi_device_event_controller_check_key_event): return
4069 FALSE on no virtual method.
4071 * libspi/*..h: make includes work on a correctly pathed install.
4073 * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4075 * libspi/application.h: kill unused ( and whacked out )
4076 gboolean *spi_application_set_id (AtkObject *app, long id);
4078 2001-11-20 Michael Meeks <michael@ximian.com>
4080 * libspi/*.[ch]: further convert to bonobo's type func
4081 macros, remove redundnant casts etc.
4083 * libspi/text.c s/accessibility_text/spi_text/g,
4084 re-order to de-cruft.
4086 * libspi/hypertext.c: re-order to kill a huge slew
4087 of redundant forward decls.
4089 * libspi/relation.c: ditto.
4091 * libspi/image.c: ditto.
4093 * */.cvsignore: update
4095 2001-11-20 Michael Meeks <michael@ximian.com>
4097 * libspi/deviceeventcontroller.c
4098 (_controller_register_with_devices): use g_getenv,
4099 kill stdlib.h include.
4101 * libspi/keystrokelistener.c
4102 (spi_keystroke_listener_get_type): kill
4103 (spi_keystroke_listener_class_init),
4104 (spi_keystroke_listener_init): rename to this.
4106 * libspi/text.c (impl_getAttributes): fix warning / bug.
4108 * libspi/*.[ch]: more headers, includes and over commenting.
4110 2001-11-20 Michael Meeks <michael@ximian.com>
4112 * libspi/*.[ch]: fixup headers, includes and over commenting.
4114 * libspi/image.c (impl__get_imageDescription): const
4115 correctness warning fix. remove redundant casting.
4117 * libspi/table.c (impl_getRowDescription): ditto.
4118 (impl_getColumnDescription): ditto.
4120 * libspi/libspi.h: add.
4122 2001-11-19 Michael Meeks <michael@ximian.com>
4124 * libspi/editabletext.c (impl_setAttributes): fix warnings.
4126 * libspi/component.c (accessibility_component_get_type):
4127 rename to (spi_component_get_type): and macroify.
4128 (accessibility_component_init): rename to
4129 (spi_component_init): this
4130 (accessibility_component_class_init): rename to
4131 (spi_component_class_init): this
4133 * libspi/action.c (spi_action_get_type): kill, use the macro.
4135 * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4138 * libspi/application.c (spi_application_object_event_listener),
4139 (impl_accessibility_application_register_object_event_listener):
4140 warning fixes / const understanding updates.
4142 * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4145 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4147 * libspi/spi_accessible.c: Added docs and C bindings for
4148 AccessibleStateSet. (No implementations yet). Documentation
4149 coverage for C bindings now 100%. Made docs for event listeners
4154 boolean notifyListenersSync (in DeviceEventListener listener,
4155 in DeviceEvent event);
4157 oneway void notifyListenersAsync (in DeviceEventListener listener,
4158 in DeviceEvent event);
4160 Added DeviceEventListener and DeviceEvent structs (may deprecate
4161 KeyStroke and KeystrokeListener in favor of this generic
4162 event/listener framework for devices).
4164 * libspi/deviceeventcontroller.c:
4166 Changed some key listener code to take masks, etc., and paved the
4167 way for integration of toolkit/non-preemptive key events. Changed
4168 signatures of some internal methods.
4170 * at-bridge/bridge.c:
4171 Fixed regression connecting to interface signals, apparently
4172 caused by GTK+ changes.
4174 Added an internal bridge_state_listener to deal with
4175 property-change:accessible-state signals.
4177 Changed the key_listeners GList to store structs (including masks,
4178 etc.) instead of just CORBA_Objects (required for full
4179 implementation of key listener API).
4181 Connected the bridge to all currently supported Atk signals.
4182 Events now supported:
4183 object:property-change
4184 object:property-change:accessible-name
4185 object:property-change:accessible-state
4186 object:property-change:accessible-description
4187 object:property-change:accessible-parent
4188 object:property-change:accessible-value
4189 object:property-change:accessible-role
4190 object:property-change:accessible-table-caption
4191 object:property-change:accessible-table-column-description
4192 object:property-change:accessible-table-column-header
4193 object:property-change:accessible-table-row-description
4194 object:property-change:accessible-table-row-header
4195 object:property-change:accessible-table-summary
4196 object:children-changed
4197 object:visible-data-changed
4198 object:selection-changed
4199 object:text-selection-changed
4201 object:text-caret-moved
4203 object:row-reordered
4205 object:column-inserted
4206 object:column-reordered
4207 object:column-deleted
4208 object:model-changed
4210 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4212 * libspi/hyperlink.c,h:
4213 Fixed some broken stuff in hyperlink.
4215 * libspi/relation.h:
4216 * libspi/relation.c:
4217 * cspi/spi_accessible.c:
4218 Initial implementations of AccessibleRelation methods, and docs.
4220 * libspi/accessible.c:
4221 Fixed a bug that caused SEGV if an accessible
4222 object's description is NULL, and a client
4223 requests it. An empty string is now returned.
4225 * cspi/spi_editabletext.c:
4226 * cspi/spi_hypertext.c:
4228 * cspi/spi_hyperlink.c:
4232 Doc coverage now 95%.
4234 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4236 One last namespacing revision:
4237 * libspi/accessibleeventlistener.[ch]:
4238 Renamed SpiAccessibleEventListener to SpiEventListener,
4239 (no need for two namespaces ;-)
4241 And lots of documentation fixes:
4243 * docs/at-spi-docs.sgml:
4244 Fixed 'underscore vs. hyphen' bug that was preventing
4245 the gtk-doc API docs from being automatically generated.
4248 * cspi/spi-listener.h
4250 * cspi/spi_accessible.c
4252 * cspi/spi_application.c
4253 * cspi/spi_component.c
4254 * cspi/spi_editabletext.c
4256 * cspi/spi_hypertext.c
4258 * cspi/spi_registry.c
4259 * cspi/spi_selection.c
4263 * docs/at-spi-docs.sgml
4264 * docs/at-spi-sections.txt
4266 Added and fixed up gtk-doc documentation in cspi.
4268 Interfaces now (fully) documented (subject to revision and enhancement):
4270 Event Listener Support
4272 AccessibleApplication
4276 AccessibleEditableText
4283 AccessibleRelationSet
4288 2001-11-14 Bill Haneman <bill.haneman@sun.com>
4290 * at-bridge/bridge.c:
4291 Initial work for toolkit-level key snooper connection by bridge.
4296 New typedefs and fixes to support new namespacing, and cleaner
4297 separation of cspi bindings from libspi bonobo implementation.
4298 Removed inconsistent and extraneous Spi* namespace prefix that
4299 had crept into cspi headers.
4300 Lots of comment fixes that sed had missed.
4302 * cspi/spi-roletypes.h:
4303 * cspi/spi-statetypes.h:
4304 Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
4305 to AccessibleRoleType.
4307 * libspi/accessibleeventlistener.h:
4308 Fixed minor namespacing weirdness.
4310 * libspi/deviceeventcontroller.c:
4311 Reordered some internal API for device listeners.
4312 Changed the key registry final boolean to 'is_system_global'
4313 rather than 'is_synchronous', which is more descriptive of its
4315 Added spi_device_event_controller_new().
4316 Added SpiRegistry backpointer to SpiDeviceEventControllerClass.
4318 * libspi/keystrokelistener.[ch]:
4319 Namespaced KeystrokeListener to SpiKeystrokeListener.
4320 Changed uses of keymasks to use SPI_ prefix, and did other
4323 * libspi/keymasks.h:
4324 Namespaced keymask constants with SPI_ prefix.
4326 * libspi/registry.c:
4327 Some warning fixes, and knock-on fixes from namespace changes.
4330 Added rules for accessx-gui test program.
4332 * test/accessx-gui.c:
4333 Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
4334 utility. It doesn't actually use at-spi, but it's still cool and
4337 * test/keysynth-demo.c:
4341 Fixes so that these test clients work properly with the namespaced
4342 libraries. (Incompletely tested for technical reasons, fixes may follow)
4345 2001-11-13 Michael Meeks <michael@ximian.com>
4347 * libspi/application.c
4348 (impl_accessibility_application_get_version),
4349 (impl_accessibility_application_get_toolkit_name):
4351 (impl_accessibility_application_set_id),
4352 (impl_accessibility_application_get_id): remove
4353 redundant casting code.
4355 * libspi/action.c (impl_getDescription): fix warnings.
4357 * libspi/accessible.c
4358 (impl_accessibility_accessible_get_parent),
4359 (impl_accessibility_accessible_get_child_at_index),
4360 (impl_accessibility_accessible_get_state),
4361 (impl_accessibility_accessible_get_relation_set):
4362 warning fixes & include action.h
4364 2001-11-13 Michael Meeks <michael@ximian.com>
4366 * *.[ch] fix bits I screwed up:
4368 s/([^ \tb(\*\&\?\",])spi_/\1/g;
4369 s/([^ \tb(\*\&\?\",])Spi/\1/g;
4371 2001-11-13 Michael Meeks <michael@ximian.com>
4373 * *.[ch] Namespace libspi into spi_ and Spi.
4375 2001-13-11 Michael Meeks <michael@ximian.com>
4377 * Makefile.am: dist & install at-spi-1.0.pc
4379 * libspi/Makefile.am: install into at-spi-1.0
4381 * idl/Makefile.am (idldir): install into at-spi-1.0
4383 * at-spi-1.0.pc.in: add.
4385 * configure.in: build it.
4387 2001-11-12 Bill Haneman <bill.haneman@sun.com>
4389 * test/keysynth-demo.c:
4390 Use a 'realize' signal-handler to set the WM properties for
4391 the virtual keyboard, rather than making it a "POPUP" type
4392 override-redirect window (thanks to anders carlsson for that
4395 2001-11-11 Bill Haneman <bill.haneman@sun.com>
4398 * test/keysynth-demo.c:
4399 Added new test of key synthesis, which creates a simple
4400 (mouse-operated) onscreen keyboard. It inserts key events into
4401 the currently-focused window, thus it does not grab keyboard focus
4404 * cspi/spi_registry.c:
4405 Added C binding for AT-SPI generateKeyEvent.
4407 * libspi/deviceeventcontroller.c:
4408 Added call to XFilterEvent so that key listener works with XIM (we
4409 hope). Added event_synth_type to generateKeyEvent, so that we can
4410 produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
4411 synthesize a press/release pair for KeySyms.
4413 2001-11-09 Bill Haneman <bill.haneman@sun.com>
4415 * libspi/Makefile.am:
4416 * registryd/Makefile.am:
4417 (temporary) hack to include libXtst in libspi and registryd.
4418 (Needed for keystroke synthesis, see below).
4421 Improved API for registerKeystrokeListener, in accordance with
4422 discussions with Gnopernicus team and X server research.
4424 * libspi/registry.c:
4425 * libspi/deviceeventcontroller.c:
4426 * libspi/accessible.c:
4427 * libspi/keystrokelistener.c:
4428 Changes and fixes to support keylisteners for potentially
4429 consumed key events (that is, 'passive grabs').
4430 Added implementation for generateKeyEvent() [untested].
4433 Changes to registerKeystrokeListener() API, as above.
4434 Added deregisterGlobalEventListenerAll(), and
4435 deregisterKeystrokeListener(), which are needed for clean exit of
4437 Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
4438 and a macro ALL_KEYS which may be used in place of a KeySet pointer.
4440 * cspi/spi_registry.c:
4441 Added implementations of function prototypes mentioned above.
4443 * registryd/registryd.c:
4444 Added the key listener event source as a g_timeout(), to allow
4445 receipt of key events that are not caught by GDK (since GDK
4446 doesn't support passive keygrabs, this was necessary).
4449 Changed to attach a keylistener to 'Alt' keys, and
4450 respond to the following keycommands: Alt-M (toggle magnifier);
4451 Alt-F (toggle speech); Alt-Q (quit).
4452 Added an exit routine to deregister the listeners, and a key
4453 listener that prints some key info to the console when a key
4454 matches the listener mask (and is thus received by the listener).
4456 * util/idl/Magnifier.idl:
4457 Changes to magnifier API to support multiple zoom regions,
4458 non-uniform scaling in x and y, markDirty, and a host of other
4459 features that would be useful to magnification.
4462 * util/mag_client.c:
4463 * util/mag_client.h:
4464 * util/mag_control.c:
4466 Source code changes to support the above IDL changes.
4469 As above, and also changes to use a (slower) generic conversion
4470 path for colormap conversions, since the fast RGB conversions have been
4471 reported to fail for 16-bit displays.
4473 2001-10-26 Michael Meeks <michael@ximian.com>
4475 * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
4477 2001-10-26 Laszlo Peter <laca@ireland.sun.com>
4479 * at-bridge/Makefile.am: fix LDFLAGS.
4481 2001-10-09 Bill Haneman <bill.haneman@sun.com>
4483 * at-bridge/bridge.c:
4484 Re-worked listeners for toolkit events, now we have signal
4485 and property listeners. Added a private method
4486 register_atk_event_listeners(), which registers with the
4487 various atk and gtk signals we need to monitor in order to emit
4489 Added emission hook for AtkObject:property-change events, to
4490 support the 'property listeners'.
4491 Fixed some alloc()s of Accessibility_Event structs to use CORBA
4494 * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
4495 which emit warnings and exit, respectively, if CORBA errors occur
4496 during remote calls, and we now use these methods to check most of
4497 our CORBA calls in the C bindings.
4499 * cspi/spi_accessible.c:
4500 Changed AccessibleSelection_refSelectedChild() to
4501 AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
4502 now increment refcounts.
4504 * cspi/spi_component.c:
4505 Fixed some long pointer casts (dangerous!) to pass pointers to
4506 CORBA_longs of the proper type to the CORBA stubs, and copy the
4507 data into the longs that were passed into the C bindings code.
4509 * at-bridge/bridge.c:
4511 * libspi/accessible.c:
4512 Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
4513 hyperlinks, AtkHyperlink is an object type.
4515 * libspi/application.c:
4516 Added various conversions to and from "generic" event types and
4517 atk-specific types; this is really part of the 'bridge'
4518 implementation but is valid for all AtkObject-based accessibility
4521 * libspi/editabletext.c:
4522 Fixed nasty bug wherein editable text's finalize method was
4523 unref'ing tha AtkObject reference that the text parent class was
4524 about to unref _again_. There was also a nasty inheritance bug
4525 that meant that the AccessibleEditableText class was corrupt.
4527 * libspi/selection.c:
4528 Provided implementations for some selection API that was broken.
4530 * idl/Application.idl:
4531 Added registerObjectEventListener () method.
4534 Fixed a number of return values that were Bonobo_Unknowns from
4535 bonobo_object_corba_objref(), which I
4536 forgot to dup before returning. Changed instances of
4537 bonobo_object_corba_objref (bonobo_object(o)) to
4538 BONOBO_OBJREF(o), for concision and clarity.
4540 2001-10-13 Louise Miller <louise.miller@sun.com>
4542 * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
4543 idl/Event.idl, idl/Registry.idl
4544 Changed these files to include Bonobo_Unknown.idl instead
4547 2001-09-10 Marc Mulcahy <marc.mulcahy@sun.com
4549 * libspi/component.c libspi/component.h:
4550 Fixed typo. Added assertions for object checks in
4551 AccessibleComponent code.
4553 2001-10-09 Bill Haneman <bill.haneman@sun.com>
4555 * idl/Accessible.idl:
4556 Added 'isEqual (Accessible *object)'
4557 method for Accessible. (Not Yet Implemented).
4560 Changed signature of registerKeystrokeListener() to
4561 take a KeySet and KeyEventSeq so that specific keys and event
4562 types could be requested for monitoring, and added a flag
4563 is_synchronous so that either synchronous or asynchronous
4564 notification could be requested. (However this is not all
4565 implemented yet). This also meant adding two new typedefs,
4566 KeyEventSeq and KeySet.
4569 Added two new relations, RELATION_TOOLTIP_FOR and
4570 RELATION_LEAFNODE_OF.
4573 Added new state, STATE_HAS_TOOLTIP.
4575 * libspi/text.c, editabletext.c:
4576 Added new assertions to all casts of bonobo-objects from
4577 CORBA servants, to prevent Text API calls on non-text objects.
4578 Changed suspect casts of int-pointer types, so that we
4579 always send a valid CORBA_long pointer to the CORBA APIs that use
4580 in/out long parameters. We then have to copy from the CORBA_long
4581 into the regular long or int for return to the C bindings, or
4582 vice-versa when returning parameters from ATK calls to the bonobo wrappers.
4585 * libspi/deviceeventcontroller.c:
4586 Cleaned these sources up.
4588 Changed return type for getCharacterAtOffset to
4589 CORBA_unsigned_long, to allow for 32-bit characters.
4592 2001-10-08 Bill Haneman <bill.haneman@sun.com>
4596 Fixed 'make dist' so that distro compiles...
4597 * libspi/keymasks.h:
4599 * cspi/spi-listener.c:
4600 KeystrokeListenerCB now returns a boolean.
4602 Added KeyEventType struct, and KeyStroke.
4603 Also added createKeystrokeListener(),
4604 KeystrokeListener_addCallback(),
4605 KeystrokeListener_removeCallback(), and added a keymask to
4606 registerKeystrokeListener().
4607 * cspi/spi_accessible.c:
4608 Changed numerous return types for interfaces from
4609 AccessibleComponent to Accessible<InterfaceName>; this was
4610 probably a cut-and-paste error.
4612 Implementations of new KeystrokeListener api (from spi.h,
4615 Changes to key modifier mapping.
4616 Created ControllerEventMask struct.
4617 Made DeviceEventController derive from Bonobo::Unknown.
4619 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
4620 * libspi/deviceeventcontroller.c:
4621 Added a number of new internal (private) methods.
4622 * libspi/editabletext.c:
4623 * libspi/editabletext.h:
4624 Fixed a number of bugs related to the fact that
4625 editabletext inherits from text. Fixed the EditableText struct,
4626 the init() call, and use correct casts when calling Text methods
4627 from an EditableText object. Removed (duplicate) atko from the
4628 EditableText structure, we use the one in the parent Text
4629 structure via the casts mentioned above.
4630 * libspi/keystrokelistener.[ch]:
4631 * libspi/registry.c:
4632 Changes in support of keyboard handling (above).
4634 Keyboard handling, though partly functional, is still not
4635 recommended for at-spi client use as there is considerable
4636 work yet to be done.
4639 Changed some places where pointers to various int types
4640 are cast to be pointers to CORBA_long types and vice-versa:
4641 pointer casting is not safe so we pass pointers of the correct
4642 types and then cast the result before putting it into the target
4645 * libspi/text.h: minor typos corrected.
4647 We now speak not only the name of a Text element, but the
4648 first sentence of its content, when it receives focus.
4649 I also changed the text compression to 75% from 50%.
4650 * util/Accessibility_Util.server.in:
4651 Changed the default magnifier type to be a 3x vertical
4652 splitscreen magnifier (was previously a 2x horizontal one).
4654 2001-10-03 Bill Haneman <bill.haneman@sun.com>
4656 * libspi/keystrokelistener.h:
4657 * libspi/keystrokelistener.c:
4658 Initial functional implementations of KeystrokeListener.
4661 2001-10-05 Marc Mulcahy <marc.mulcahy@sun.com>
4663 Fixed string handling for NULL strings in libspi.
4664 Added spi_freeString to free strings returned by C bindings.
4666 2001-09-30 Bill Haneman <bill.haneman@sun.com>
4668 * libspi/keystrokelistener.h:
4669 * libspi/keystrokelistener.c:
4670 Began (no-op) implementations of KeystrokeListener
4672 * libspi/deviceeventcontroller.c:
4673 * libspi/deviceeventcontroller.h:
4674 Began creating implementations of DeviceEventController,
4675 to handle keystroke and mouse event listening and
4677 * libspi/accessible.c:
4678 Stubbed-in the implementations for
4679 Accessibility_Accessible_getState and
4680 Accessibility_Accessible_getRelationSet.
4681 * libspi/registry.c:
4682 Improved de-registration process and fixed some bugs,
4683 deregistration now works correctly.
4685 Added initialization of applications list (to NULL).
4687 Reduced speech compression from 0.5 to 0.7, for demo.
4688 Changed call to gdk_window_set_decorations()
4689 to gtk_window_set_decorated().
4690 * at-bridge/bridge.c:
4691 Bridge now deregisters when app exits, via
4692 registration of a cleanup function
4693 with the g_atexit() call.
4694 Required making 'app' static, renamed 'this_app'.
4695 Fixed broken use of bonobo_init, passing argv wrongly.
4697 2001-09-27 Bill Haneman <bill.haneman@sun.com>
4701 Created a new directory for
4702 accessibility-related utilities, primarily for
4703 testing and demo purposes, but with possible
4710 Onscreen magnifier utility that
4711 is implemented as a bonobo service.
4713 * util/mag_client.c:
4714 * util/mag_client.h:
4715 Client-side support (simple C bindings)
4716 for Magnification service
4718 * util/mag_control.c:
4719 Client program example for
4720 Magnification service
4722 * util/Accessibility_Magnifier.server.in:
4723 Bonobo-activation file for the
4724 Magnification service.
4727 * util/idl/Magnifier.idl:
4728 IDL defining the bonobo Magnification
4732 Modifications to use the bonobo-activated magnifier
4733 above, in place of trying to connect to an existing
4734 magnifier that uses socket-listening IPC.
4736 If env variable MAGNIFIER is set, a magnifier service
4737 will be started if one does not exist.
4739 2001-09-25 Bill Haneman <bill.haneman@sun.com>
4741 * at-bridge/bridge.c:
4742 applied patch from Marc to build and run
4743 against new glib and gtk+ (seemed like a change
4744 to bonobo_init signature was made ?)
4746 made festival-server support turned off by default.
4747 Added support for a simple magnifier (off by default)
4748 which will be added to a 'util' directory later.
4749 * at-bridge/Makefile.am:
4750 Changed "application.h" header from a 'source'
4751 to a 'dependency' of libat-bridge.
4753 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
4762 Added interface implementation c files to list of
4763 includes so they are included in libcspi.
4766 Changed prototype of AccessibleAction_doAction to return a
4768 Changed prototype of AccessibleTable_getCaption to
4769 return an Accessible.
4770 Changed prototype of AccessibleTable_getSelectedRows
4771 and AccessibleTable_getSelectedColumns to
4772 return a long (returns the number of selected rows
4773 or columns respectively).
4774 Changed name of AccessibleText_refRunAttributes to
4775 AccessibleText_getAttributes.
4776 Changed prototype of AccessibleText_getCharacterExtents to
4777 return a void rather than a boolean.
4778 Added support for a AccessibleCoordType parameter
4779 specifying what type of coordinates are desired.
4780 Added an AccessibleCordType parameter to
4781 AccessibleText_getPointAtOffset.
4783 * cspi/spi_accessible.c:
4784 Added code to return the outstanding interfaces from
4785 Accessible_queryInterface.
4787 * cspi/spi_action.c:
4789 Corrected call to getNActions to call the c binding
4792 * cspi/spi_editabletext.c:
4794 Changed name from setRunAttributes to setAttributes.
4796 * cspi/spi_hyperlink.c:
4798 Changed call to getNAnchors to correctly call the c
4799 binding for an attribute.
4801 * cspi/spi_hypertext.c:
4803 Changed getImageDescription to correctly call the
4804 binding for an attribute.
4806 * cspi/spi_selection.c:
4807 Changed getNSelectedChildren to correctly call the c
4808 binding for the attribute.
4809 Changed refSelectedChild to getSelectedChild.
4813 Changed getCaption to return an Accessible.
4814 Fixed calls which retrieve attributes.
4815 Changed refAt to getAccessibleAt.
4816 Changed getNSelectedRows and getNSelectedColumns to
4820 Changed getCharacterExtents and getPointAtOffset to accept an
4821 AccessibleCoordType.
4823 Changed calls which retrieve attributes.
4824 Changed refRunAttributes to getAttributes.
4829 * idl/Hyperlink.idl:
4830 Changed n_anchors attribute to nAnchors to keep naming
4831 convention consistent.
4834 Made Table inherit from Bonobo::Unknown.
4835 Added nSelectedColumns and nSelectedRows attributes.
4838 Made Value inherit from Bonobo::Unknown.
4840 * libspi/hyperlink.c:
4841 Change for nAnchors attributte name change.
4843 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
4851 Added interface implementation c files to list of
4852 includes so they are included in libcspi.
4855 Changed prototype of AccessibleAction_doAction to return a
4857 Changed prototype of AccessibleTable_getCaption to
4858 return an Accessible.
4859 Changed prototype of AccessibleTable_getSelectedRows
4860 and AccessibleTable_getSelectedColumns to
4861 return a long (returns the number of selected rows
4862 or columns respectively).
4863 Changed name of AccessibleText_refRunAttributes to
4864 AccessibleText_getAttributes.
4865 Changed prototype of AccessibleText_getCharacterExtents to
4866 return a void rather than a boolean.
4867 Added support for a AccessibleCoordType parameter
4868 specifying what type of coordinates are desired.
4869 Added an AccessibleCordType parameter to
4870 AccessibleText_getPointAtOffset.
4872 * cspi/spi_accessible.c:
4873 Added code to return the outstanding interfaces from
4874 Accessible_queryInterface.
4876 * cspi/spi_action.c:
4878 Corrected call to getNActions to call the c binding
4881 * cspi/spi_editabletext.c:
4883 Changed name from setRunAttributes to setAttributes.
4885 * cspi/spi_hyperlink.c:
4887 Changed call to getNAnchors to correctly call the c
4888 binding for an attribute.
4890 * cspi/spi_hypertext.c:
4892 Changed getImageDescription to correctly call the
4893 binding for an attribute.
4895 * cspi/spi_selection.c:
4896 Changed getNSelectedChildren to correctly call the c
4897 binding for the attribute.
4898 Changed refSelectedChild to getSelectedChild.
4902 Changed getCaption to return an Accessible.
4903 Fixed calls which retrieve attributes.
4904 Changed refAt to getAccessibleAt.
4905 Changed getNSelectedRows and getNSelectedColumns to
4909 Changed getCharacterExtents and getPointAtOffset to accept an
4910 AccessibleCoordType.
4912 Changed calls which retrieve attributes.
4913 Changed refRunAttributes to getAttributes.
4918 * idl/Hyperlink.idl:
4919 Changed n_anchors attribute to nAnchors to keep naming
4920 convention consistent.
4923 Made Table inherit from Bonobo::Unknown.
4924 Added nSelectedColumns and nSelectedRows attributes.
4927 Made Value inherit from Bonobo::Unknown.
4929 * libspi/hyperlink.c:
4930 Change for nAnchors attributte name change.
4933 2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
4935 implementations-- made server implementations own AtkObject pointers
4936 rather than their respective AtkInterrface pointers to fix
4937 refcounting. AtkHyperlink is still broken.
4939 2001-09-04 Bill Haneman <bill.haneman@sun.com>
4940 * cspi/spi_accessible.c:
4941 Added method Accessible_Role_getName(),
4942 and requisite string array (role_names).
4943 Added conversion string_from_corba_strin() call
4944 to Accessible_getName and _getDescription.
4945 * libspi/accessible.c:
4946 Added implementation for Accessible_getRole()
4948 Added festival support, used if environment variable
4951 2001-09-04 Bill Haneman <bill.haneman@sun.com>
4953 * at-bridge/bridge.c:
4954 Now allocate Accessibility_Event using
4955 Accessibility_Event__alloc() instead of g_new0().
4956 * libspi/accessibleeventlistener.c:
4957 Initialize AccessibleEventListener->callbacks to NULL.
4958 Fixed accessible__event_listener_init() param, changed to
4959 "AccessibleEventListener *" type.
4960 Changed a bonobo_object_release_unref() call to
4961 Accessibility_Accessible_unref().
4962 * libspi/listener.c:
4963 Changed Bonobo_Unknown_unref to (equivalent)
4964 Accessibility_Accessible_unref.
4965 * libspi/registry.c:
4966 Changed bonobo_object_release_unref to
4967 Accessibility_Accessible_unref.
4969 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
4972 spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
4973 spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
4974 spi-util.c spi-util.h
4975 Implementations for C bindings to remaining accessibility
4978 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
4981 changed return value of Action from void to boolean to
4982 bring in line with ATK.
4985 Changed getText funcions to return "out" start and end offsets.
4986 Changed getAttributes to take and offset and return the start
4987 and end offset of the attribute run.
4988 Changed getOffsetAtPoint and getCharacterExtents to take an
4989 enum describing whether coordinates are window or screen.
4992 libspi/action.c libspi/action.h libspi/editabletext.c
4993 libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
4994 libspi/hypertext.c libspi/hypertext.h libspi/image.c
4995 libspi/image.h libspi/selection.c libspi/selection.h
4996 libspi/table.c libspi/table.h libspi/text.c libspi/text.h
4997 libspi/value.c libspi/value.h
4998 Added server implementations for outstanding ATK interfaces
4999 not yet implemented.
5001 2001-09-04 Bill Haneman <bill.haneman@sun.com>
5004 Added (missing) getName() method.
5005 Made nActions an attribute.
5006 * idl/EditableText.idl:
5007 Changed order of params in setAttributes.
5008 * idl/Hyperlink.idl:
5009 Removed getAnchor, added getURI.
5011 Changed attributes to methods, for efficiency
5012 (so that getting extents can be done in one call)
5013 * idl/Selection.idl:
5014 Changed nSelectedChildren to attribute, and re-indented.
5015 * idl/Table.idl: changed nrows, ncolumns, caption, summary
5017 * idl/Text.idl: reformatted to match our coding style.
5018 (temporarily?) removed getRowColumnAtOffset().
5019 Changed text selection API to support multi-select and
5020 non-contiguous selections, as in ATK.
5021 * idl/Value.idl: changed some methods to attributes.
5023 2001-08-24 Mark McLoughlin <mark@skynet.ie>
5025 * libspi/listener.c(impl_notify_event):
5026 BonoboUnkown_unref the source instead
5027 of bonobo_object_release_unref - the ORB
5028 handles the releasing.
5030 * configure.in: require ORBit-2.3.94 for
5033 2001-08-21 Bill Haneman <bill.haneman@sun.com>
5035 Tagged CVS repository 'EA_1_0'.
5036 * README.EARLY_ACCESS:
5037 Alphabetized acknowledgements list, and
5039 Listed some known dependencies of at-spi.
5041 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5043 * docs/at-spi-docs.sgml:
5044 * docs/at-spi-sections.txt:
5045 * docs/at-spi-overrides.txt: (Added zero-length file)
5046 Documentation improvements - gtk-doc should build
5047 docs for all implemented C bindings now.
5050 * cspi/spi.c: (New file)
5051 * cspi/spi_event.c: (New file)
5052 * cspi/spi_registry.c: (New file)
5053 * cspi/spi_accessible.c: (New file)
5054 * cspi/spi_application.c: (New file)
5055 * cspi/spi_component.c: (New file)
5056 Split spi_main.c into six parts, and included them from
5057 "spi.c". This is a bit of a hack, probably temporary,
5058 but required by gtk-doc, apparently.
5060 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5063 * docs/at-spi-docs.sgml:
5064 * docs/at-spi-sections.txt:
5066 Initial checkins/modifications for gtk-doc generation.
5069 Added (missing) interface query methods to Accessible's C binding.
5071 Added GenericInterface type definition.
5073 Added query for AccessibleComponent interface to focus event handler.
5074 Added printout of bounding box for focussed component.
5075 * libspi/component.c:
5076 Added partial implementation for AccessibleComponent to C binding.
5077 * idl/Application.idl:
5078 * libspi/registry.c:
5079 * libspi/listener.c:
5080 * libspi/application.c:
5081 * libspi/application.h:
5082 Changed "ID" attribute type from string to long.
5084 2001-08-19 Bill Haneman <bill.haneman@sun.com>
5088 Made method naming consistent: methods taking object args
5089 start with uppercase, other methods (except those using
5090 acronyms) start with lowercase. Underscores delimit between
5091 object names and method names:
5092 SPI_init() - uppercase since it starts with an acronym.
5093 getDesktopCount () - lowercase start since no object param0.
5094 Accessible_getName() - uppercase object type name, studlyCaps method
5098 Added gtk-doc documentation for all currently implemented
5099 methods in the C bindings API.
5101 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5103 * Makefile.am : changed build order to build test last.
5106 Changed "createEventListener" to "CreateEventListener".
5107 * libspi/accessibleeventlistener.c :
5108 Bugfix for addition of callbacks.
5109 * test/Makefile.am :
5110 * test/simple-at.c :
5111 Added new test that uses the C bindings API.
5113 * libspi/listener.c :
5114 * libspi/registry.c :
5115 * libspi/accessibleeventlistener.c :
5116 * at-bridge/bridge.c :
5117 Renamed member "target" of Accessibility_Event to "source",
5118 which is more descriptive.
5121 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5125 * cspi/Makefile.am :
5126 Added makefile support for at-spi/cspi directory.
5129 * cspi/spi-listener.h : (NEW FILE)
5130 Added support for/use of spi-listener.h.
5132 C bindings now build successfully, with no warnings.
5133 * libspi/accessibleeventlistener.h : (NEW FILE)
5134 * libspi/accessibleeventlistener.c : (NEW FILE)
5135 * libspi/Makefile.am :
5136 Added new object type "AccessibleEventListener"
5137 which inherits from Listener, and allows attachment
5138 of in-process callbacks (so that a client with a listening
5139 object instance can add functionality to the local
5140 implementation, dynamically).
5142 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5144 * libspi/accessible.c:
5145 Add implementation for get_index_in_parent().
5147 Added #include of "spi-roletypes.h", and
5148 added enumerated type AccessibleCoordType.
5149 Added definition for KeystrokeListener (function type).
5152 * cspi/spi-statetypes.h :
5153 * cspi/spi-roletypes.h :
5155 Added these headers, used by spi.h.
5157 Added code (NOTE: not yet built by make).
5159 2001-08-18 Mark McLoughlin <mark@skynet.ie>
5161 * libspi/Makefile.am: generate imodule
5162 at the same time as other idl compiler
5165 2001-08-17 Bill Haneman <bill.haneman@sun.com>
5166 * libspi/registry.c :
5167 * libspi/application.c :
5168 * idl/Application.idl :
5169 Made registration with toolkit an application method,
5170 which is required since each app has its own toolkit static
5171 environment. Thus the bridge must register for
5172 notification of toolkit events from each application in turn.
5173 Toolkit notifications are now successfully registered for, and
5174 sent to the listening at client.
5176 Changed toolkit event string to use hyphens rather than underscores.
5177 * libspi/listener.c :
5178 listner now gives more info in debug mode - it reports the
5179 name of the event received, as well as the name of the source.
5182 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5184 * libspi/registry.c :
5185 added more implementation for toolkit events.
5186 Fixed bug such that toolkit event registrations
5187 (via atk) use the whole event name string, not
5189 Removed a useless call to an ORBit_ method.
5190 * at-bridge/bridge.c :
5191 Removed unused local sbuf[] variable.
5193 We now register for Gtk:GtkWidget:button_press_event
5194 events as well as "focus:" events.
5196 Add some more API from Registry.idl that was missing,
5197 for keystroke listening, keystroke and mouse event
5198 synthesis, and enumeration of accessible desktops.
5200 2001-08-16 Michael Meeks <michael@ximian.com>
5202 * configure.in: use AM_GLIB_GNU_GETTEXT.
5204 * Makefile.am (SUBDIRS): kill intl.
5206 2001-08-15 Michael Meeks <michael@ximian.com>
5208 * registryd/Makefile.am: s/oaf/server/ relocate info file.
5210 * configure.in: upd.
5212 * configure.in: depend on a recent bonobo-activation that
5213 will find our server files ...
5215 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5217 * libspi/accessible.c : accessible_new() :
5218 Now we add the Component interface via bonobo_object_add_interface,
5219 if the contained AtkObject implements AtkComponent.
5220 * libspi/accessible.h : now include "component.h"
5221 * libspi/component.h :
5222 * libspi/component.c : added files - implementation of
5223 bonobo wrapper object for Accessibility/Component
5224 * libspi/listener.c :
5225 Added test code to check for Accessibility/Component:1.0
5226 interface and report whether it is implemented by the
5228 * libspi/registry.c :
5229 Now we check for not only the hash of the whole event
5230 string before relaying the event, we also check the
5231 "minor" event string (without the detail string).
5232 This allows event listeners to be registered against
5233 all events of a certain major+minor type, or just
5234 against a specific major+minor+detail type.
5235 * libspi/accessible.c :
5236 Added implementations for Accessible:get_parent(),
5237 Accessible:getChildCount(), and Accessible:getChildAtIndex().
5238 * libspi/registry.c :
5239 * libspi/listener.c :
5240 Replaced calls to Accessibility_Accessible_ref() and
5241 Accessibility_Accessible_unref() with
5242 calls to bonobo_object_dup_ref() and
5243 bonobo_object_release_unref(), so that the CORBA object
5244 is dup-ed and released when relayed, as well as the bonobo object.
5246 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5248 * libspi/Makefile.am,
5249 registryd/Makefile.am,
5250 at-bridge/Makefile.am.
5251 test/Makefile.am, configure.in:
5252 reverse previous changes.
5254 * /idl/Image.idl: fix typo.
5256 * test/Makefile.am: put DEBUG_FLAGS
5259 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5261 * test/app.c: use argv[0] instead of
5264 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5266 * libspi/Makefile.am,
5267 registryd/Makefile.am,
5268 at-bridge/Makefile.am.
5269 test/Makefile.am, configure.in:
5270 cleanup, replace individual LIBS/CFLAGS with
5271 AT_COMMON_{LIBS|CFLAGS}.
5275 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5277 * configure.in, libspi/Makefile.am:
5278 Change IDL path checking for bonobo-activation
5281 2001-08-15 Bill Haneman <bill.haneman@sun.com>
5283 * registryd/registry.c : separated event listeners to use
5284 3 separate lists (focus, window, toolkit). Began testing
5285 event names against hashes before relaying events.
5286 * test/at.c : now register for events of type "focus:"
5287 * test/app.c : now generate events of type "focus:"
5288 * at-bridge/bridge.c : register with ATK for focus events,
5289 and we now relay those focus events to any "focus:" listeners.
5290 This now works with the bridge as a GTK_MODULE when running test/at.
5291 * libspi/registry.c :
5292 * libspi/listener.c :
5293 now we ref event sources before propagating, and unref on receipt.
5294 * libspi/registry.c :
5295 some changes to internal structs, to support event typestring hashes.
5296 * text/app.c : changed the way the appname is generated.
5297 * cspi : added directory that will hold the C bindings library for
5298 non-CORBA/bonobo-savvy clients.
5299 * cspi/spi.h : header file that contains the function prototypes for the C binding.
5300 * idl/Component.idl : added in parameter to indicate coord system for
5301 geometry-related calls.
5302 * idl/Hyperlink.idl : added readonly n_links attribute
5303 * idl/Image.idl : changed methods to attributes.
5305 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5307 * at-bridge/Makefile.am: link against
5308 ../libspi/libspi.la instead of -lspi.
5310 * at-spi/test/app.c: include
5311 bonobo-activation.h. Use a default appname
5312 if one is not provided.
5314 2001-08-14 Bill Haneman <bill.haneman@sun.com>
5316 * idl/Registry.idl : temporarily changed register_Application
5317 to oneway, to work around issue with initial registration
5319 * idl/Application.idl : changed attribute "id" from readonly
5320 to read-write, since it needs to be assigned by Registry.
5321 * registryd/registryd.c : added call to set application id
5323 * registryd/registry.c : changed de-registration procedure to
5324 use CORBA_Object_hash() to find matching object ref in application
5325 lists and listener lists.
5326 * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
5327 began distinguishing between event types (work in progress).
5329 2001-08-13 Bill Haneman <bill.haneman@sun.com>
5332 * libspi/application.c:
5333 Added implementations for get/set id, get_toolkitName,
5335 * registryd/registryd.c :
5339 Converted from use of OAF to bonobo-activation.
5340 * libspi/desktop.h :
5341 * libspi/desktop.c :
5343 Removed references to atksimpleobject, since base atkobject
5344 implementation now provides functionality we need.
5345 * libspi/atksimpleobject.c :
5346 * libspi/atksimpleobject.h :
5351 * at-bridge/Makefile.am
5352 * at-bridge/bridge.c
5355 Added directory "bridge" and contents, and added dependencies
5356 in Makefile.am/configure.in.
5357 Initial checkin of "at-bridge".
5358 This code is a GTK_MODULE which automatically registers
5359 GTK+ apps with the accessibility registry, using an object
5360 reference to the root ATK object.
5362 2001-08-10 Mark McLoughlin <mark@skynet.ie>
5364 * po/Makefile.in.in: Remove. Again. If this
5365 doesn't get autogenerated - you need to update
5368 2001-08-07 Mark McLoughlin <mark@skynet.ie>
5370 * po/Makefile.in.in: Add. Again.
5372 2001-07-31 Bill Haneman <bill.haneman@sun.com>
5374 * libspi/accessible.c : added support for 'description' property.
5375 * libspi/accessible.c
5377 * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
5378 (since the two are now equivalent in libbonobo)
5386 * idl/Value.idl : changed these 'secondary' interfaces to inherit from
5387 Bonobo::Unknown as does Accessibility::Accessible.
5388 * idl/StreamableContent.idl : as above, and replaced internal InputStream
5389 interface with Bonobo::Stream, since it was redundant with it.
5390 (The Stream returned by a StreamableContext object is expected to
5391 implement only a subset of Bonobo::Stream)
5393 2001-07-28 Anders Carlsson <andersca@gnome.org>
5395 * libspi/accessible.c (accessible_object_finalize): Change
5396 g_free to g_object_unref since the AtkObject is a GObject.
5398 2001-07-30 Bill Haneman <bill.haneman@sun.com>
5400 * idl/Accessibility.idl: add new IDL files
5403 * idl/Action.idl: Definitions of actionable UI object
5404 * idl/Component.idl: Definitions of UI component geometry, etc.
5405 * idl/Hyperlink.idl: Defs of hyperlink behavior
5406 * idl/Image.idl: Def of accessible image
5407 * idl/Selection.idl: Definition of UI object with selectable children
5408 * idl/StreamableContent.idl: Definition of UI object with streamable backing data
5409 * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
5410 * idl/Text.idl: Interface defs for UI elements with complex textual content
5411 * idl/Value.idl: Definition of UI element that is a value controller or display
5413 2001-07-27 Michael Meeks <michael@ximian.com>
5415 * po/Makefile.in.in: remove autogenerated file from CVS.
5417 * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
5420 * idl/Registry.idl: include guard.
5422 * idl/Accessibility.idl: Add, and include all the other IDL
5425 * idl/*.idl: remove mass of pragmas etc.
5427 2001-07-26 Michael Meeks <michael@ximian.com>
5429 * registryd/Makefile.am (registryd_SOURCES): remove
5432 2001-07-27 Mark McLoughlin <mark@skynet.ie>
5434 * libspi/.cvsignore, registryd/.cvsignore,
5435 test/.cvsignore: updated.
5437 * po/Makefile.in.in: gettext update.
5439 2001-07-25 Bill Haneman <bill.haneman@sun.com>
5441 * initial CVS checkin
5443 2001-06-29 Michael Meeks <michael@ximian.com>
5445 * configure.in: add AM_CONFIG_HEADER to gen config.h