1 2002-12-09 Padraig O'Briain <padraig.obriain@sun.com>
4 (spi_atk_bridge_init_event_type_consts): Store signal id for
5 active-descendant-changed signal.
6 (spi_atk_register_event_listeners): Add signal listener for
7 active-descendant-changed signal,
8 (spi_atk_bridge_signal_listener): Move code in function
9 spi_atk-signal_emit_event() into this function.
10 Add support for active-descendant-changed
11 Update support for child-changed signal.
12 (spi_bridge_window_event_listener): Silence warning.
14 * libspi/spi_private.[ch]:
15 (spi_init_any_object): Change second parameter from CORBA_Object to
17 Omit call to CORBA_Object_duplicate().
18 Set CORBA_any's _value to CORBA_Object*.
20 2002-12-06 Bill Haneman <bill.haneman@sun.com>
26 (AccessibleEvent_ref, AccessibleEvent_unref):
27 New methods, for persisting an event outside the emission context.
28 Must be used if the new accessor methods are to be called
29 outside of the event listener's callback.
31 * cspi/bonobo/cspi-bonobo.c:
32 (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
33 as second parameter instead of NULL, so we can call
34 cspi_check_ev afterwards.
37 (cspi_object_take): New internal method,
38 converts a CORBA_Object reference to a hard ref on
39 an Accessible if possible, returning NULL if the object
40 reference is invalid or an Accessible * otherwise.
43 (AccessibleEvent_ref):
44 Increment the event's internal private refcount, and
45 add the event's internal struct to an internal cache
46 if it's not already there.
47 (AccessibleEvent_unref):
48 Decrement the event's refcount and remove it from
49 the cspi event cache if refcount==0.
50 (cspi_event_compare): New private method.
51 Compares two event structs via their ids. Used
53 (cspi_internal_event_lookup): New private method.
54 (cspi_internal_event_check): New private method,
55 a 0-order sanity check for events to make sure their
56 private data is intact.
57 (cspi_internal_event_add, cspi_internal_event_remove):
58 New private methods for managiing the event cache.
60 * cspi/bonobo/cspi-bonobo-listener.c:
62 Initialize the new private data elements (id, magic, ref_count).
64 * atk-bridge/bridge.c:
65 (spi_atk_bridge_signal_listener):
66 Fixed bug #100530, passing wrong params to emission func.
68 * registryd/deviceeventcontroller.c:
69 (spi_dec_button_update_and_emit):
70 Fixed type in mask bit operations; fix for #99799.
73 2002-12-02 Bill Haneman <bill.haneman@sun.com>
75 Removed some of the more dangerous workarounds from
76 previous commit; they are only needed by GOK, which
77 in reality should be using another method to accomplish
78 the goals. So on reconsideration some of the workarounds
81 * registryd/deviceeventcontroller.c:
82 (spi_keycodes_contain, spi_dec_init_keycode_list):
83 Removed these methods, used only by a nasty hack to try
84 and detect whether a key synthesis should be allowed
85 to reset the XKB latch state or not. This code was only
86 required to work around an interaction between GOK,
87 button events, and XKB.
88 (impl_generate_key_event):
89 Removed hack at end of key generation that tried to
90 "do the right thing" if XKB latch keys were generated
91 in the midst of button press/release pairs.
94 Added a check for HAVE_XINPUT. Not normally used yet.
96 2002-11-25 Bill Haneman <bill.haneman@sun.com>
98 Workarounds and fixes for mouse event/XKB interaction.
100 * registryd/deviceeventcontroller.c:
101 (spi_keycodes_contain, spi_dec_init_keycode_list):
102 New internal methods.
103 (spi_dec_set_unlatch_pending):
104 Split the method that tells XKB to expect an
105 unlatch (and revert it) out of the rest of the
106 event handling code. This method is called by the
107 two mouse event handlers (the poll and the filter).
108 (spi_dec_update_and_emit, spi_dec_mouse_check):
109 New methods split from spi_dec_poll_mouse_moved.
110 The second one is now called from inside the filterFn
111 when an XKB delatch event is received, to determine
112 whether to revert the delatch or not.
113 (spi_poll_mouse_moved): Refactor; also we can now
114 properly handle the case where multiple button states
115 have changed between polling cycles and we didn't get
116 notified due to another client's grab.
118 Synchronize the server while handling an XKB notification.
119 Ugly, but apparently necessary to avoid nasty races.
120 Check the mouse state on receipt of an XKB latch change,
121 to decide whether to revert the latch or not. (Latches are
122 reverted if there is an immediately preceding mouse button
123 event that a client has consumed, in which case we don't want
124 the user to see the side-effect of the event).
125 (spi_device_event_controller_forward_mouse_event):
126 Check for modifier events and fire before resetting mouse_mask_state,
127 prevents losing modifier events.
129 (impl_generate_keyboard_event):
130 If we've just generated a keyboard event for a non-shift key,
131 we don't want to revert the pending XKB latch.
132 Otherwise, check the modifier state (via a call to
133 spi_dev_mouse_check) and set the relatch mask to
134 that state before returning.
136 2002-11-24 Bill Haneman <bill.haneman@sun.com>
139 Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
142 * atk-bridge/bridge.c:
143 (spi_atk_register_event_listeners):
144 Don't re-register for ATK events if the registry has died
145 and the app needs to re-register; the ATK listeners are in
146 process and doing so will cause duplicate emission.
148 * registryd/deviceeventcontroller.c:
149 (spi_poll_mouse_moved):
150 Reformat the source, detect and emit multiple button-change
151 events (i.e. if multiple buttons have changed between poll
153 Add code to detect mouse-down events even when the pointer
154 is grabbed; workaround for GOK bug 98420.
155 (spi_controller_register_with_devices):
156 Call XTestGrabControl with 'impervious' flag set to True,
157 allows us to synthesize events and query the pointer even during
158 an active grab by another client.
159 (spi_device_event_controller_forward_mouse_event):
160 Set the mouse_mask_state to the mouse_button_state from
161 the intercepted event, to synchronize the grab listener with
164 2002-11-20 Bill Haneman <bill.haneman@sun.com>
166 * cspi/spi_accessible.c:
167 (AccessibleRole_getName):
168 Added necessary strings for making this (deprecated)
169 method work with the new role types.
170 (init_role_table, role_table):
171 Added definition of SPI_ROLE_APPLICATION.
173 * libspi/spi-roletypes.h:
174 Added SPI_ROLE_APPLICATION.
176 * idl/Accessibility_Role.idl:
177 Added ROLE_APPLICATION.
179 * docs/reference/cspi/at-spi-cspi-decl.txt:
180 Added SPI_ROLE_APPLICATION to docs.
182 2002-11-20 Padraig O'Briain <padraig.obriain@sun.com>
184 * cspi/spi_accessible.c
185 (cspi_init_role_table): Do not write beyond end of role_table.
186 (Accessible_getRole): Use correct type for value returned by
187 Accessibility_Accessible_getRole().
189 * libspi/accessible.c (spi_init_role_lookup_table): Do not write
190 beyond end of role_table. (This fixes bug #98269)
192 * libspi/application.c: Add include file spi-private.h for
193 definition of spi_init_any_nil.
195 2002-11-19 Bill Haneman <bill.haneman@sun.com>
199 * libspi/spi-private.h:
200 Added DGB() macro, and extern int _dbg declaration.
202 * registryd/registry.c:
203 (definitions) storage for _dbg.
205 Get environment variable "AT_SPI_DEBUG".
206 (spi_registry_set_debug):
207 New method, to initialize _dbg value.
208 (spi_listener_struct_new, spi_registry_object_finalize):
209 (notify_listeners_cb):
210 Changed fprintfs to use DBG and g_warning().
212 * registryd/deviceeventcontroller.c:
213 (_deregister_keygrab, spi_controller_register_device_listener):
214 Changed debug/warning messages to use DBG macro.
218 Changed warning messages to use DBG macro and g_warning().
220 * atk-bridge/bridge.c:
221 (atk_bridge_init, spi_atk_bridge_get_registry):
222 (spi_atk_bridge_exit_func):
223 (spi_atk_bridge_property_event_listener):
224 Changed status, warning, and error messages to use
225 g_warning, g_message, and DBG macros.
228 Read the state of the AT_SPI_DEBUG environment variable
229 and set a local '_dbg' accordingly.
231 2002-11-19 Bill Haneman <bill.haneman@sun.com>
233 FIXES for 98836, 98842, other bugs.
236 Revved to 1.1.4, interface-age=4, binary-age=4.
238 * registryd/deviceeventcontroller.c:
240 Fixed crasher bug in last_mouse_pos initialization.
242 * registryd/registry.c:
243 (desktop_add_application, desktop_remove_application):
244 Added (and then commented out) some support for
245 object context marshalling. [TODO]
247 * atk-bridge/bridge.c:
248 (spi_atk_bridge_event_context_create):
249 Commented out object context creation until it can
250 be properly tested and debugged.
252 * registryd/registry.c:
253 (impl_registry_notify_event):
254 Fixed crasher bug, we were calling
255 spi_re_entrant_list_foreach () with an empty list.
257 2002-11-18 Bill Haneman <bill.haneman@sun.com>
259 * idl/Accessibility_Action.idl:
260 * idl/Accessibility_Component.idl:
261 * idl/Accessibility_Desktop.idl:
262 * idl/Accessibility_Event.idl:
263 * idl/Accessibility_Hyperlink.idl:
264 * idl/Accessibility_Image.idl:
265 * idl/Accessibility_Relation.idl:
266 * idl/Accessibility_Selection.idl:
267 * idl/Accessibility_State.idl:
268 * idl/Accessibility_Value.idl:
269 Updated unimplemented slot count to minimum of
270 four for all interfaces, for ABI freeze.
272 * idl/Accessibility_EditableText.idl:
273 * idl/Accessibility_Text.idl:
274 Updated unimplemented slot count to six
277 * idl/Accessibility_Registry.idl:
278 Updated unimplemented slot count to six
279 (also for DeviceEventController),
282 * idl/Accessibility_Table.idl:
283 Updated unimplemented slot count to eight,
286 * idl/Accessibility_Event.idl:
287 Added CORBA_any "any_data" member to Event struct.
289 * idl/Accessibility_Event.idl:
290 Added CORBA_any "any_data" member to Event struct.
292 * atk-bridge/bridge.c:
294 atk_signal_text_changed, atk_signal_child_changed,
295 signal ids queried from gtype system.
296 (AtkBridgeEventContextType): New enum.
297 (AtkBridgeEventContextData): New struct.
298 (AtkBridgeEventContext): New struct.
299 (atk_bridge_init_event_type_consts):
300 New method, initializes type contants for comparison
301 prior to emit_eventv.
302 (atk_bridge_event_context_init): New method,
303 initializes a CORBA_any from an AtkBridgeEventContext.
304 (atk_bridge_focus_tracker): Call spi_init_any_nil to
305 initialize the event.any_data struct.
306 (spi_atk_bridge_event_context_create): New method,
307 creates an AtkBridgeEventContext from signal/event info.
308 (spi_atk_bridge_event_context_free): New method.
309 (spi_atk_emit_eventv): Changed to take an
310 AtkBridgeEventContext parameter. We now initialize
311 the event.any_data member prior to notifying the
312 Registry, via the AtkBridgeEventContext.
313 (spi_atk_bridge_property_event_listener):
314 (spi_atk_bridge_state_event_listener):
315 Match emit_eventv signature.
316 (spi_atk_bridge_object_event_listener):
317 Match emit_eventv signature, and create an
318 event context from the event details.
319 Free the event context afterwards.
320 (spi_atk_bridge_window_event_listener):
321 Create an event context, pass it to the
325 (AccessibleEvent_getContextString):
326 (AccessibleEvent_getContextObject):
327 New methods, allow query of AccessibleEvent objects
328 for more context details (via the "any_data" member
329 of the Event struct, above).
332 Definitions for AccessibleEvent_getContextString
333 and AccessibleEvent_getContextObject.
335 * cspi/spi_listener.h:
336 (InternalEvent): New struct.
339 (AccessibleEvent_getContextString):
340 (AccessibleEvent_getContextObject):
341 Implementations of new methods, for obtaining
342 additional context information from some event types.
344 * cspi/spi_registry.c:
345 (SPI_registerGlobalEventListener):
346 Added mention of active-descendant-changed event in docs.
348 * cspi/cspi-bonobo-listener.c:
350 Marshal the any into the AccessibleEvent via
353 * libspi/spi-private.h:
354 #include <orbit/orbit.h>
356 (spi_init_any_string):
357 (spi_init_any_object):
358 New convenience function declarations.
362 (spi_init_any_string):
363 (spi_init_any_object):
364 New convenience function implementations.
366 * registryd/deviceeventcontroller.c:
367 (spi_poll_dec_mouse_moved):
368 (spi_device_event_controller_forward_mous_event):
369 Initialize any_data member of event.
370 (spi_deregister_controller_device_listener):
371 Fix incorrect param pass which was preventing deregistration.
373 * registryd/registry.c:
374 (desktop_add_application):
375 (desktop_remove_application):
376 Add object data to event's any_data before dispatch.
378 Fix for error messages from GAIL.
380 * test/event-listener-test.c:
381 Test new ContextString and "any_data" API:
382 (report_text_event): New method query and output context string.
383 (main): register a new text listener with report_text_event
386 2002-11-19 Darren Kenny <darren.kenny@sun.com>
388 Fixes for bugs 98127 and 97914.
389 * cspi/spi-roletypes.h:
390 Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
392 * cspi/spi-statetypes.h:
393 Added SPI_STATE_MANAGES_DESCENDANTS
395 Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
396 SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
397 * cspi/spi_accessible.c:
398 Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
399 Added mapping from SPI_STATE_MANAGES_DESCENDANTS to
400 Accessibility_STATE_MANAGES_DESCENDANTS
401 * libspi/accessible.c:
402 Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
403 Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER}
404 As requested by Bill, I also cleaned up the alignment.
406 Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
407 EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
409 Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
410 Accessibility_STATE_MANAGES_DESCENDANTS
411 * docs/reference/cspi/tmpl/spi_accessible.sgml:
412 Document changes reflecting modifications to roles.
413 * docs/reference/cspi/tmpl/spi_relation.sgml:
414 Document changes reflecting modifications to relations.
415 * docs/reference/cspi/tmpl/spi_stateset.sgml:
416 Document changes reflecting modifications to states.
418 2002-11-17 Bill Haneman <bill.haneman@sun.com>
421 Revved to 1.1.3, interface-age=3, binary-age=3.
425 Removed accessx-gui from the tests, since we have a nice
426 keyboard accessibility capplet now :-)
428 * test/keysynth-demo.c:
429 (increment_scan): removed do-nothing default: case,
432 * test/visual-bell.c:
433 (main) : removed do-nothing default: case,
437 (AccessibleAction_getKeyBinding_):
438 Documented keybinding string format.
442 (AccessibleText_getAttributes):
443 Documented the text attribute string format.
444 It's changed to use semicolon delimiters also,
445 to prevent clashes with CSS attributes, but the old
446 trick of looking for ", " strings will still work
447 (as unreliably as ever). Fix for bug related to 97916.
450 Include <cspi/bonobo/cspi-bonobo-listener.h>
452 (SPI_freeAccessibleKeySet):
453 (AccessibleKeystrokeListener_addCallback):
454 (AccessibleKeystrokeListener_removeCallback):
455 Modify to use AccessibleDeviceListener API internally,
456 instead of AccessibleKeystrokeListener.
458 * idl/Accessibility_Event.idl:
459 Added two more empty slots to EventListener (for a total of four).
461 * idl/Accessibility_Accessible.idl:
462 Added four empty slots to Accessible interface.
464 2002-11-15 Bill Haneman <bill.haneman@sun.com>
466 * idl/Accessibility_Registry.idl:
467 (KeyEventType, EventType):
468 Marked KeyEventType as deprecated; it duplicates
469 functionality of EventType, which has been extended to
470 include Mouse-button events.
471 (KeyEventTypeSeq): defined in terms of EventType.
472 (registerDeviceEventListener, deregisterDeviceEventListener):
473 New methods, for managing listeners to device events,
474 which potentially may consume them.
477 Added definition for AccessibleDeviceListener.
479 * cspi/spi-listener.h:
480 (enum AccessibleDeviceEventType):
481 Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
482 Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
483 for backwards compat.
484 (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
485 and typedef'd AccessibleKeystroke to it for back-compat.
486 (AccessibleDeviceListenerCB):
487 New function prototype typedef.
490 (AccessibleDeviceEventMask): New typedef.
491 (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
492 (AccessibleKeyMaskType):
493 Set equivalent to AccessibleModifierMaskType for back-compat.
494 (SPI_createAccessibleKeystrokeListener):
495 (AccessibleKeystrokeListener_unref):
496 Deprecated in favor of equivalent (better-named) new API below..
497 keystroke listeners are like all device listeners.
498 (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
499 New API names for old features :-).
500 (AccessibleDeviceListener_addCallback):
501 (AccessibleDeviceListener_removeCallback):
502 (SPI_registerDeviceEventListener):
503 (SPI_deregisterDeviceEventListener):
507 (SPI_createAccessibleKeystrokeListener):
508 Use new preferred API, cspi_device_listener_new() and
509 cspi_device_listener_add_cb().
510 (AccessibleKeystrokeListener_removeCallback):
511 Use new preferred API, cspi_device_listener_remove_cb().
512 (AccessibleKeystrokeListener_unref):
513 Use new preferred API, cspi_device_listener_unref().
514 (SPI_createAccessibleDeviceListener):
515 (AccessibleDeviceListener_addCallback):
516 (AccessibleDeviceListener_removeCallback):
517 Implementation of new API.
519 * cspi/spi_registry.c:
520 (SPI_registerDeviceEventListener):
521 (SPI_deregisterDeviceEventListener):
522 Implementation of new API. Fixed memory leak and removed need to
523 allocate EventTypeSeq (thanks Michael for catching this).
524 Squashed a wayward CORBA_exception_free that shouldn't get called.
526 * cspi/bonobo/cspi-bonobo-listener.c:
528 Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
529 (cspi_key_event): renamed to cspi_device_event().
530 Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
531 Extended to handle mouse button events as well as key events.
532 (CSpiKeystrokeListener):
533 Class superceded by CSpiDeviceListener.
534 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
535 These internal APIs changed to "*device_listener" from "*keystroke_listener".
537 * cspi/bonobo/cspi-bonobo-listener.h:
538 (CSpiKeystrokeListener):
539 Class superceded by CSpiDeviceListener.
540 (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
541 These internal APIs changed to "*device_listener" from "*keystroke_listener".
543 * libspi/Makefile.am:
544 Replaced keystrokelistener.h and keystrokelistener.c
545 with devicelistener.h and devicelistener.c; keystrokelisener.h
546 stub retained for back-compat.
548 * libspi/keystrokelistener.c:
552 Replaced inclusion of keystrokelistener.h with devicelistener.h.
554 * registryd/deviceeventcontroller.c:
555 (DEControllerListener): Added Accessibility_EventTypeSeq member.
556 (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
557 (DEControllerPrivateData): Added xkb settings data.
558 (spi_dec_poll_mouse_moved): Changed to dispatch device events for
559 button release events (which can't be captured via XGrabButton).
560 Don't dispatch via the 'normal' event mechanism if the device event was
562 (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
563 Handle the typeseq data in its new location (see above).
564 (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
565 New methods, for "generic" device listeners.
566 (spi_controller_register_device_listener):
567 Now handle mouse event listeners as well as key listeners.
568 (spi_controller_notify_mouselisteners):
570 (spi_device_event_controller_forward_mouse_event):
571 Now we notify mouse device listeners as well as generating the
572 non-consumable "mouse:" events.
574 We must check and restore the XKB
575 modifier map if we consume the event, since the act of triggering
576 a mouse event will normally reset the XKB latch. This is required for
578 (spi_controller_register_with_devices):
579 Load the XKB settings when registering, and register for XKB
581 (spi_key_eventtype_seq_contains_event):
582 Renamed spi_eventtype_seq_contains_event, since it's used
583 internally for all device event types now.
584 (spi_key_event_matches_listener):
585 Uses spi_eventtype_seq_contains_event now.
586 (spi_device_event_controller_object_finalize):
587 Free the private data and the XkbKeyboard struct.
588 (impl_register_device_listener, impl_deregister_device_listener):
589 Implementation of new IDL.
590 (spi_deregister_controller_device_listener):
592 (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
593 More efficient implementation, we don't have to create a new
594 XkbControls structure every time we query.
595 (spi_device_event_controller_class_init):
596 Initialize the epv entries for the new IDL. Assign the
597 "spi-dec-private" quark.
598 (spi_device_event_controller_init):
599 Initialize the private data.
600 (spi_device_event_controller_forward_key_event):
601 Removed a bogus CORBA_exception_free() call.
603 * registryd/deviceeventcontroller.h:
604 Replaced inclusion of keystrokelistener.h with
607 * test/event-listener-test.c:
608 (report_mouse_event):
611 Added mouse-event device listener.
613 * test/test-simple.c:
614 (create_test_window):
615 Fixed regression (we were instantiating a GtkRange,
616 which is now an abstract class). Also fixed to match
617 existing AtkRole names, this seems to have changed in ATK
618 awhile ago; too late now I think, and the new
619 mechanism is at least elegant and consistent with the
620 glib enum "nick" APIs.
622 2002-11-15 Darren Kenny <darren.kenny@sun.com>
624 * idl/Accessibility_Relation.idl:
625 add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
626 RELATION_EMBEDS,RELATION_EMBEDDED_BY
627 * idl/Accessibility_Role.idl:
628 add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
629 * idl/Accessibility_State.idl:
630 add STATE_MANAGES_DESCENDANTS
631 * test/event-listener-test.c:
632 Added a listener for active-descendant events.
634 2002-11-15 Padraig O'Briain <padraig.obriain@sun.com>
636 * atk-bridge/bridge.c
637 (atk_bridge_init): If application is Bonobo component wait until top
638 level is added before registering
639 (spi_atk_bridge_do_registration): New function which contains code,
640 formerly in atk_bridge_init, to do application registration.
641 (spi_atk_bridge_toplevel_added): Signal called when top level
642 added to Bonobo component
644 This fixes bug #83134.
646 2002-10-23 Vitaly Tishkov <tvv@sparc.spb.su>
648 * registryd/deviceeventcontroller.c
649 Fixed compilation error caused by calling gettimeofday()
652 2002-10-18 Bill Haneman <bill.haneman@sun.com>
657 Added template for HAVE_XKB.
660 Changes to check for XKB, and to set the HAVE_XKB #define if it
664 ()impl_notify_event): Make failure to get event source name
667 * registryd/deviceeventcontroller.c:
668 (#include): include X11/XKBlib.h.
669 (DEControllerPrivateData) : New struct.
670 (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) :
672 (dec_synth_keycode_press) (dec_synth_keycode_release):
673 New methods; split the key synthesis code into these methods.
674 They check XKB settings before determining the "time" values to
675 pass to Xtest; this fixes bug #95828.
676 (impl_generate_keyboard_event): Changed to use methods above,
677 instead of callng Xtest directly.
678 (spi_device_event_controller_init): Initialize new privae struct s
680 (spi_device_event_controllr_object_finalize):
681 Free the (new) private data.
683 * registryd/deviceeventcontroller.h:
684 Add new gpointer to end of struct data.
686 2002-10-16 Bill Haneman <bill.haneman@sun.com>
689 Incremented revision to 1.1.2, SONAME is still '.so', library
690 extensions are ".so.0.0.2".
692 * registryd/deviceeventcontroller.c:
693 FIXES FOR #93592 and #95940.
694 (statics): renamed mouse_button_state to mouse_mask_state,
695 added key_modifier_mask.
696 (spi_dec_poll_mouse_moved):
697 Added key modifier checks, and emit "keyboard:modifiers"
698 events when the key modifiers currently in use change.
699 Also generate "mouse:abs" events periodically, even if the mouse
700 is stationary (should we?).
701 Alternatively we could generate "mouse:abs" events for either all
702 mouse movements, or every 'nth' mouse movement, or at the
703 beginning and end of every "active" mouse period.
705 * test/event-listener-test.c:
706 (main): Added listener for "keyboard:modifiers" events.
708 2002-10-15 Bill Haneman <bill.haneman@sun.com>
711 Added key mask #defines for mouse buttons; e.g.
712 SPI_KEYMASK_BUTTON1, etc.
715 Incremented dependency on ATK to version 1.1.0. (This dependency
716 is probably premature but will soon be real enough).
718 2002-10-11 Padraig O'Briain <padraig.obriain@sun.com>
720 * libspi/hyperlink.[ch]
721 (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
722 (get_hyperlink_from_servant): Check object is AtkHyperlink not
725 * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
730 2002-10-10 Padraig O'Briain <padraig.obriain@sun.com>
732 * registryd/deviceeventcontroller.c
733 (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
734 events to be ignored.
735 (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
736 keyboard_mode so that XAllowEvents() can be called.
740 2002-10-08 Padraig O'Briain <padraig.obriain@sun.com>
742 * cspi/spi-accessible.c: Correct names of roles returned by
743 AccessibleRole_getName(). Fixes bug #95055.
745 2002-10-03 Padraig O'Briain <padraig.obriain@sun.com>
747 * cspi/spi_main.c (report_leaked_ref): Report address of leaked
750 * registryd/registry.c
751 (desktop_remove_application: Write diagnostic message to stderr for
754 (impl_accessibility_registry_deregister_global_event_listener):
755 Correct size of lists array. This addresses bug #94555).
757 2002-09-24 Padraig O'Briain <padraig.obriain@sun.com>
759 * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
762 2002-09-19 Padraig O'Briain <padraig.obriain@sun.com>
764 * registryd/Makefile: Add CLEANFILES so that .server file is removed
767 * registryd/registry.c (impl_registry_notify_event): Remove
768 unnecessary call to parser_event_type().
770 * docs/reference/cspi/tmpl/spi_component.sgml:
771 Add reference to SPI_LAYER_WINDOW.
773 2002-09-17 Padraig O'Briain <padraig.obriain@sun.com>
775 * registryd/registry.c
776 (desktop_add_application): Remove leak.
777 (desktop_remove_application): Remove leak.
778 (parser_event_type): Remove leak.
780 2002-09-16 Padraig O'Briain <padraig.obriain@sun.com>
782 * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
783 bogus call to CORBA_string_dup(). Also removed unnecessary
784 g_string_dup/g_free calls.
786 2002-09-13 Bill Haneman <bill.haneman@sun.com>
788 * registryd/deviceeventcontroller.c:
789 spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
791 * test/event-listener-test.c:
792 main: commented out three redundant listeners, to reduce output
793 noise. (They still are potentially useful for testing).
796 2002-09-13 Michael Meeks <michael@ximian.com>
798 * Update all the copyrights to include Ximian.
800 2002-09-06 Mark McLoughlin <mark@skynet.ie>
802 * cspi/spi.h: add SPI_LAYER_WINDOW.
804 * cspi/spi_component.c: (AccessibleComponent_getLayer):
805 add Accessibility_LAYER_WINDOW case.
807 * idl/Accessibility_Component.idl: add LAYER_WINDOW.
809 * libspi/component.c: (impl_accessibility_component_get_layer):
810 add ATK_LAYER_WINDOW case.
812 2002-08-28 Bill Haneman <bill.haneman@sun.com>
814 * configure.in: incremented micro version.
816 * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
818 2002-08-20 Bill Haneman <bill.haneman@sun.com>
821 Clarified and reworded our commit policy.
824 Started an API "todo" addition list for 2.2.
828 Free char pointer from atk_text_get_selection, which was being leaked.
830 2002-08-19 Bill Haneman <bill.haneman@sun.com>
833 Small revision to author acknowledgement.
835 2002-08-19 Padraig O'Briain <padraig.obriain@sun.com>
837 * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
838 If signal has detail add it to the type of the event.
841 2002-08-12 Michael Meeks <michael@ximian.com>
843 * test/test-simple.c (global_listener_cb): bin bogosity.
844 (test_keylisteners): disable, still doesn't work reliably,
845 certainly not on my system anyway.
847 * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
848 don't leak a reference on the DEC. This round-trip
849 fetching of the DEC per keystroke sucks, it should be
852 * cspi/spi-private.h,
853 * cspi/cspi-lowlevel.h,
854 * cspi/bonobo/cspi-bonobo-listener.[ch],
855 * cspi/bonobo/cspi-bonobo.c: get the copyright
856 notices better - there is still a large amount of
857 work in at-spi falsely attributed solely to Sun.
859 * cspi/spi_main.c (cspi_object_ref): kill bogus
860 hash lookup, just increment the ref.
861 (SPI_freeString): make explicit the fact that we
862 handle NULL strings just fine.
863 (report_leaked_ref): obey coding standards.
864 (cspi_object_hash, cspi_object_equal): kill retval.
865 (cspi_object_release): only release if not on loan.
866 (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
867 (cspi_object_borrow, cspi_object_return): impl.
869 * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
870 use cspi_object_borrow / return.
872 2002-08-12 Darren Kenny <darren.kenny@sun.com>
874 * cspi/bonobo/cspi-bonobo-listener.c:
876 Don't call cspi_oject_new() because this is creating a new Accessible
877 every single time that an event is fired. This causes ATs like at-poke
878 to nolonger recognise the source of the event and thus ignore it.
879 Re-use the object from the cache, ref it and then unref it after the
880 listeners have been called.
882 2002-08-06 Darren Kenny <darren.kenny@sun.com>
884 * test/event-listener-test.c:
885 Added command-line options to disable mouse events (m) and
888 2002-07-31 Padraig O'Briain <padraig.obriain@sun.com>
890 * configure.in: Update required versions of ATK, GTK+ and GAIL
892 * cspi-1.0.pc.in: Add dependency for X include files
895 * cspi/bonobo/Makefile.am:
896 Add $(X_CFLAGS) so that X include files
897 are picked up even if not in standard place (bug #71686)
899 2002-06-25 Bill Haneman <bill.haneman@sun.com>
901 * registryd/deviceeventcontroller.c: fix for 84261
902 (spi_dec_mouse_moved):
903 Added test of mouse button mask, so that we can detect mouse
904 button release. Unfortunately we can't otherwise detect mouse
905 button release events without consuming the mouse press event,
906 because of the way XGrabButton works. This means that our mouse
907 release events have a latency dependent on the polling period
908 while the mouse button is down. At least in this case we only
909 have to poll while the button is down, and not at other times.
910 If the button masks don't match with what the last press event
911 reported, we report the appropriate button release event.
912 (spi_dec_ungrab_mouse):
913 New method (not yet called).
914 (spi_device_event_controller_forward_mouse_event):
915 New method, sends mouse press event from GdkFilter.
916 (spi_dec_init_mouse_listener):
917 Added code to call XGrabButton, redirecting mouse button events to
918 the root window and our Gdk event loop.
920 Added code to filter mouse button events, and reordered.
922 * test/event-listener-test.c:
924 Added registration for mouse events of type "mouse:button".
926 2002-06-25 Bill Haneman <bill.haneman@sun.com>
928 * registryd/deviceeventcontroller.c: partial fix for 84261
929 (spi_dec_poll_mouse_idle):
930 New method, a timeout which checks to see if the mouse
932 (spi_dec_poll_mouse_moving):
933 A timeout to be called when mouse motion is underway.
934 (spi_dec_poll_mouse_moved):
935 A method which fires an event if the mouse has moved, and reports
936 whether or not it did so.
937 (spi_dec_init_mouse_listener):
938 A method which sets up the timeouts above.
939 (spi_device_event_controller_new):
940 Now calls spi_dec_init_mouse_listener.
942 * registryd/registry.c:
944 Now we initialize the device event controller when the registry is
945 initialized, instead of waiting until a client has requested a key
946 event notification; this is because we need the event controller
947 for mouse events, but the mouse event registration API is a
948 "registry" call and doesn't explicitly call the
949 deviceeventcontroller.
950 We now report mouse motion events with a 100 ms idle latency and
951 a 20 ms granularity when motion is in progress.
953 * test/event-listener-test.c:
955 We now register the "detail listener" for events of type
956 "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
957 delivered only for the first mouse event received, and thereafter
958 "mouse:abs" events are delivered.)
960 * cspi/spi_registry.c:
961 DOCS: Documented the above mouse event typestrings.
963 2002-06-21 Bill Haneman <bill.haneman@sun.com>
965 Happy Summer Solstice...
967 * registryd/deviceeventcontroller.c: [fix for bug 84100]
968 (spi_controller_notify_keylisteners):
969 Changes to remove a listener from the listener list, freeing its
970 open keygrabs, if a notification to that listener fails. This
971 means that although a dead listener can continue to hold a passive
972 keygrab, a maximum of one dispatch to such a listener can fail
973 before the listener is removed from the list, thus the keygrab
974 will be released on the next occurrence.
976 (spi_notify_keylisteners):
977 Renamed to spi_controller_notify_keylisteners, as the controller
978 instance must now be passed as an argument.
979 The copied 'notify' GList is now a list of DEControllerKeyListener
980 objects, since we need more than just the CORBA reference if a
981 notify fails and we need to deregister the listener.
982 (impl_notify_listeners_sync):
983 (impl_notify_listeners_async):
984 (spi_device_event_controller_forward_key_event):
985 Modify use of notify_keylisteners in accordance with above
987 (spi_deregister_controller_key_listener):
988 New method introduced by refactoring, from
989 impl_deregister_keystroke_listener.
990 (impl_deregister_keystroke_listener):
991 Call spi_deregister_controller_key_listener.
992 (spi_key_listener_clone):
993 New method to copy a key listner without doing a 'ref' on the
994 remote object instance; used to create a notifier list.
995 (spi_key_listener_data_free):
996 New method, frees data without unreffing the source.
998 (spi_key_listener_clone_free): new method.
999 (spi_key_listener_free):
1000 refactored to call spi_key_listener_data_free.
1002 2002-06-20 Bill Haneman <bill.haneman@sun.com>
1004 * registryd/registry.c: [fix for bug 86048]
1005 (notify_listeners_cb):
1006 Clear CORBA system exceptions which occur when notifying
1007 listeners, before returning to the source of the original event,
1008 since the event source doesn't care if the relayed notify failed.
1009 In other words, don't complain to the atk-bridge if the registry
1010 could not notify all its listeners, that's no fault of the
1011 application and thus should not appear to be an error from the
1012 application's perspective.
1014 * cspi/spi_main.c: [fix for bug 85980]
1016 Replaced use of bonobo_object_dup_ref with call to the wrapper
1017 method, csou_dup_ref (); this silences a compiler warning and
1018 provided more portability.
1020 Ping the registry before return, and restart if necessary.
1022 * cspi/bonobo/cspi-bonobo.c:
1024 New internal method.
1026 Fixed this method to return an object reference, as it should have
1029 * cspi/cspi-lowlevel.h:
1030 Added internal definition for cspi_ping() and fixed
1031 return type of cspi_dup_ref().
1034 2002-06-19 Bill Haneman <bill.haneman@sun.com>
1036 * atk-bridge/bridge.c: [fix for bug 85305]
1037 (spi_atk_bridge_register_application):
1038 New method where the initial application registry calls have been
1039 moved; it allows an application to re-register in response to
1040 certain error conditions (such as a registry restart, see below).
1042 Moved some initialization code to the method
1043 spi_atk_bridge_get_registry, below.
1044 (spi_atk_bridge_get_registry):
1045 New, private accessor function for the Accessibility_Registry
1046 instance. If the registry has not been started before, or has
1047 died (as detected by failure of a CORBA exception), it is
1048 restarted before return, and spi_atk_bridge_register_application
1049 is called again to register with the new bridge instance.
1050 (spi_atk_emit_eventv):
1051 Set registry_died on error; use spi_atk_bridge_get_registry () to
1052 access the registry.
1054 * registryd/registry.c:
1055 (impl_accessibility_registry_register_global_event_listener):
1056 Set listener's event_type_quark to etype.minor instead of
1057 etype.major (fix for bug 84856).
1059 * test/event-listener-test.c:
1060 (report_detail_event):
1061 Change the output string so that user/tester can tell that the
1062 'detail listener' was called instead of the 'generic listener'.
1064 2002-06-18 Bill Haneman <bill.haneman@sun.com>
1066 Fixes for bugs 84900, 84908, 84897, 84898.
1071 Revved version to 1.1.0
1072 (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1073 version is going to HEAD which will be used for gnome-2-0-1 and later.)
1075 * idl/Accessibility_Registry.idl:
1076 (EventListener::notifyEvent):
1077 Removed 'oneway' directive after extensive consulation with
1078 ORBit2 team and others. This means also that unref() of the event
1079 source can and should be done synchronously after emission, rather
1080 than remotely in the client, after servicing the notify call on
1083 NOTE: This change speeds up listener performance considerably, but
1084 introduces new latency on the application side. We may want to
1085 add an event queue to the atk-bridge.
1087 * atk-bridge/bridge.c:
1088 (spi_atk_bridge_focus_tracker):
1089 Do a local unref() on the event source after emission.
1091 * registryd/registry.c:
1092 (desktop_remove_application):
1093 Do an unref() on the event source after emission.
1094 (desktop_add_application):
1095 Do an unref() on the event source after emission.
1096 (notify_listeners_cb):
1097 When relaying an event, don't automatically add the event source
1098 to the local object cache, just CORBA_dup it instead. Likewise,
1099 if this method reenters, release the ref rather than calling
1101 (impl_registry_notify_event):
1102 No longer call remote unref() on the event source after dispatch.
1104 * libspi/eventlistener.c:
1105 (impl_accessible_event_notify_event):
1106 Removed remote unref ()
1108 * cspi/bonobo/cspi-bonobo-listener.c:
1110 We now call cspi_object_new() instead of cspi_object_add() on
1111 receipt of an event; thus we only have an implicit object ref
1112 while the cspi_event method is being executed. If we need to keep
1113 a reference to the object, the listener must call ref() on the
1114 object. Thus also we don't need to call cspi_object_unref() after
1115 invoking the listener callbacks in this method.
1119 New internal API for creating a new cspi object, without adding it
1120 to the object cache.
1122 Now uses cspi_object_new() to create the cspi object instance.
1124 Now checks to see if the object is in the internal object cache,
1125 and adds it if necessary before incrementing its refcount (note
1126 that new objects are added with a refcount of 1).
1127 (report_leaked_ref):
1128 New method which gives some information on leaked object instances
1129 if leak detection is turned on.
1131 * test/event-listener-test.c:
1132 (timing_test_event):
1133 New method, used for testing event delivery timing for special
1134 events of type "object:test". It reports elapsed time and
1135 events/sec every 500 events.
1137 Added a new listener, 'test listener', to check timing of event
1138 receipt as noted above.
1140 Added some timing output here also, reports elapsed time every 100
1143 * test/stress-test.c:
1144 Emit events of type "object:test", for use with "event-listener-test".
1146 * test/test-simple.c:
1147 (global_listener_cb):
1148 Call Accessible_ref() on the event source before calling
1149 validate_accessible, since the validation process does pointer
1150 comparisons on the event source, meaning that the event source
1151 needs to be added to the local object cache first. Any use of
1152 such pointer comparisons between Accessible objects requires that
1153 the caller hold an explicit reference to those objects.
1154 We also must therefore call Accessible_unref() when leaving this method.
1156 2002-06-13 Bill Haneman <bill.haneman@sun.com>
1158 * registryd/deviceeventcontroller.c:
1159 (spi_controller_update_key_grabs):
1160 Fix for #84735, subsequent keygrab listeners not informed of
1161 registration failure.
1164 (spi_base_construct):
1165 Add an assertion on construct, to make sure the GObject passed in
1166 is really a GObject.
1168 Explicitly initialize object->gobj pointer to NULL;
1170 * cspi/bonobo/cspi-bonobo-listener.c:
1171 (cspi_object_add_ref):
1172 New method, can specify whether to dup-ref a bonobo object passed
1173 in if it's newly added to the object cache.
1175 Now calls cspi_object_add_ref with second param of "FALSE". This
1176 prevents us from doing a pointless dup-ref followed by
1177 release-unref for all those cases where the object is already in
1178 our object cache (fix for #85205).
1180 * atk-bridge/bridge.c:
1181 (spi_atk_bridge_idle_init):
1182 Removed this method, we don't need to initialize in an idle
1185 Changed to call spi_atk_register_event_listeners directly, not via an
1186 idle handler. (fix for #81139)
1187 (gnome_accessibility_module_shutdown):
1188 Removed conditional around deregistration of listeners, since we
1189 don't use the idle handler and thus have always registered when
1191 (spi_init_keystroke_from_atk_key_event):
1192 Changed references to Accessibility_KEY_PRESSED to
1193 Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
1195 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1197 (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
1202 * test/stress-test.c:
1205 (may have been an incomplete commit yesterday?)
1207 2002-06-12 Bill Haneman <bill.haneman@sun.com>
1210 Added target for new stress-test.
1212 * test/stress-test.c:
1213 New test, sends 1000 focus notifies in quick succession.
1215 * test/key-listener-test.c:
1216 Now we report whether a keylistener registration
1217 request succeeded or failed.
1219 * test/event-listener-test.c:
1220 Uncommented some listeners which are now implemented.
1223 2002-06-06 Bill Haneman <bill.haneman@sun.com>
1225 * registryd/deviceeventcontroller.c:
1226 (spi_controller_update_key_grabs):
1227 Fix for #82509, lack of failure notification when
1228 ALL_WINDOWS keygrabs fail due to XGrabKey
1229 failure: we synchronize the server when
1230 registering a passive grab, to make sure we get the
1231 error message before the call returns.
1233 2002-06-03 Bill Haneman <bill.haneman@sun.com>
1235 * test/test-simple.c:
1237 Removed #ifdef KEY_IMPL_WORKS guards.
1238 (test_keylisteners):
1239 Removed #ifdef KEY_IMPL_WORKS guards.
1240 Fixed bug which was causing a hang waiting for a
1241 "press" event (which was already overwritten by a "release"
1242 event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
1244 Added code to set globals 'key_press_received' and
1245 'key_release_received'.
1248 Added section "1.1 API Proposed Additions" which
1249 lists API additions desired for at-spi-1.1 (only one so far).
1250 Updated TODO list a little.
1252 2002-06-02 Bill Haneman <bill.haneman@sun.com>
1254 AT-SPI 1.0 API FINAL: at-spi 1.0 is now
1257 * configure.in: Revved to 1.0.0.
1259 * idl/Accessibility_Registry.idl:
1260 (registerKeystrokeListener):
1261 Added boolean return value.
1263 * registryd/registry.c:
1264 (notify_listeners_cb): Minor fix to debug output.
1266 * registryd/Accessibility_Registry.server.in.in:
1267 Revved version number in OAFIID to 1.0.
1269 * registryd/registryd.c:
1271 Use new OAFIID version.
1273 * cspi/bonobo/cspi-bonobo.c:
1275 Use new OAFIID version.
1281 * atk-bridge/bridge.c:
1283 Use new OAFIID version.
1285 * registryd/deviceeventcontroller.c:
1286 (impl_register_keystroke_listener):
1287 Added CORBA_boolean return value.
1288 (spi_controller_register_device_listener):
1289 Added gboolean return value.
1290 (spi_controller_register_global_keygrabs):
1291 Added gboolean return value.
1292 (spi_key_set_contains_key):
1293 Added implementation for many more control keys,
1294 for instance F1-F12, arrow keys, End, Home, Page_Up,
1296 [TODO: some still not implemented].
1298 * text/screen-review-test.c:
1299 (text_chunk_pad_string):
1300 New function: it provides mapping between coordinate
1301 positions of text chunks and character positions in the
1302 screen-review-line output string.
1303 (text_chunk_to_string):
1304 New function, calls text_chunk_pad_string with various
1305 pad/delimiter characters. Pushbuttons are delimited with
1306 square brackets, Frames with vertical 'pipe' lines, and
1307 other text with double quotes.
1308 (text_chunk_list_to_string):
1309 Calls new function text_chunk_to_string.
1310 (toplevel_composite):
1311 New function to composite layers CANVAS through
1312 POPUP in each toplevel (other layers are composited
1313 across toplevels, i.e. BACKGROUND and OVERLAY).
1314 (review_buffer_composite):
1315 Revise to use new methods.
1321 2002-05-31 Laszlo Peter <laca@sun.com>
1323 * configure.in: add the Xtst libdir to the runpath on Solaris,
1324 since it's not in the default library search path.
1326 2002-05-29 jacob berkman <jacob@ximian.com>
1328 * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
1330 2002-05-29 Bill Haneman <bill.haneman@sun.com>
1332 * test/screen-review-test.c:
1333 (text_chunk_pad_string):
1334 Added method, which pads the string according to the
1335 text bounds of the chunk. It also takes a 3-character
1336 string as a param which indicates the characters to be
1337 used for start, padding, and end delimitation of the chunk.
1338 (text_chunk_to_string):
1339 Changed to use text_chunk_pad_string.
1341 * configure.in: Fixed bug in AC_OUTPUT that was
1342 causing path substitution in Accessibility_Registry.server
1345 2002-05-23 Bill Haneman <bill.haneman@sun.com>
1347 * text/screen-review-test.c:
1348 (guess_string_clip):
1349 New method which attempts a best-guess at clipping
1350 text from components (like Java labels) which don't
1351 actually implement AccessibleText. This inaccurate
1352 clip is based on the assumption that the label is
1353 justified left-and-right, and monospaced.
1354 (text_chunk_get_clipped_string):
1355 We now call guess_string_clip() for text-containing
1356 components that don't implement AccessibleText.
1358 * test/screen-review-test.c:
1359 (review_buffer_get_text_chunk):
1360 We now pull "name" from labels if they do not implement
1361 AccessibleText (i.e. for Java labels).
1362 (get_screen_review_line_at):
1363 Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
1366 Replaceded AC_OUTPUT target
1367 registryd/Accessibility_Registry.server with
1368 registryd/Accessibility_Registry.server.in.
1370 * registryd/Accessibility_Registry.server.in:
1371 Removed (this is now a Makefile target).
1373 * registryd/Accessibility_Registry.server.in.in:
1374 Added (source for target above). We now use $(libexecdir) as
1375 prefix for the executable at-spi-registryd.
1377 * registry/Makefile.am:
1378 Now install at-spi-registryd into $(libexecdir), and build .server
1379 file with path (see above).
1381 2002-05-22 Bill Haneman <bill.haneman@sun.com>
1383 * test/screen-review-test.c:
1384 (text_chunk_get_clipped_string):
1385 We now check to see if words fall within clip bounds
1386 before resorting to character-by-character clip bounds testing.
1388 * TODO: Added a section for "2.2 Proposed API Additions".
1390 2002-05-21 Bill Haneman <bill.haneman@sun.com>
1392 * test/screen-review-test.c:
1394 Added a screen review benchmarking and test program to test
1397 * cspi/spi_accessible.c:
1399 Made some of the debug strings passed to cspi_check_ev a
1400 little more specific.
1402 2002-05-21 Padraig O'Briain <padraig.obriain@sun.com>
1404 * test/screen-review-test.c: Fix crashes in debug statements
1406 2002-05-20 Bill Haneman <bill.haneman@sun.com>
1408 * test/screen-review-test.c: Added this file.
1410 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1412 * atk-bridge/bridge.c: changed "object:state-change" to
1413 "object:state-changed" to match docs.
1415 2002-05-13 Marc Mulcahy <marc.mulcahy@sun.com>
1417 * atk-bridge/bridge.c: Hooked up state-change event details.
1419 2002-05-11 Bill Haneman <bill.haneman@sun.com>
1421 * registryd/registry.c:
1422 Fixed quarking bug in event string parsing; now events with
1423 detail parameters get matched correctly to listeners.
1426 * util/idl/Magnifier.idl: remove.
1428 * util/*.[ch]: Remove.
1429 Magnification utilities and IDL are now in module gnome-mag.
1431 2002-05-10 Bill Haneman <bill.haneman@sun.com>
1433 * registryd/deviceeventcontroller.c:
1434 Fixed bug in grab key conversion which was causing keycode grabs
1435 to be converted to AnyKey grabs.
1438 updated NEWS file to reflect recent spin-off of gnome-mag.
1440 2002-05-09 Marc Mulcahy <marc.mulcahy@sun.com>
1442 * cspi/spi_accessible.c: Added exception checks. Fixed completely
1443 busted AccessibleStateSet_compare. Removed redundant casts.
1445 * cspi/spi-action.c: Removed redundant casts.
1447 * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
1449 * cspi/spi_component.c: Fixed typos and casting error.
1451 * cspi/spi_editabletext.c: Removed redundant casts.
1453 * cspi/spi_hyperlink.c: Fixed casting and exception checking.
1455 * cspi/spi_hypertext.c: Eliminated redundant casts.
1457 * cspi/spi_image.c: Eliminated redundant casts.
1459 * cspi/spi_registry.c: Eliminated redundant casts.
1460 SPI_deregisterGlobalEventListenerAll () removed retval variable.
1461 * cspi/spi_selection.c: Removed redundant casts.
1462 * cspi/spi_text.c: Eliminated redundant casts. Fixed exception
1463 handling. Screen geometry and text offsets were being returned as 0
1464 on error which is technically valid-- changed these to return -1.
1465 Added marshaller for text boundary types to fix bug with boundary
1466 types being passed incorrectly to atk.
1468 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1471 * cspi/spi_registry.c:
1472 Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
1473 which was uncovered by the recent key changes.
1475 2002-05-09 Bill Haneman <bill.haneman@sun.com>
1477 * test/event-listener-test.c:
1479 Added new test, "event-listener-test";
1480 this code does two things; it benchmarks traversal time
1481 for the accessible hierarchy for the first running accessible
1482 app, and it connects listeners for all supported event types.
1483 It is thus useful as an example event listener and for
1484 diagnostics/debugging of event generation.
1486 2002-05-08 Bill Haneman <bill.haneman@sun.com>
1489 Removed unnecessary dependency on libutil.
1492 Revved micro version: 0.13.1
1494 2002-05-08 Bill Haneman <bill.haneman@sun.com>
1497 Removed util/Makefile from targets.
1500 Removed util subdir from SUBDIRS (temporarily,
1501 pending removal of magnifier-only code
1505 #ifdef-ed out magnifier dependencies, since
1506 magnifier IDL, headers, and binary now live in
1507 module gnome-mag and we don't want at-spi to depend
1508 on gnome-mag. A magnifier demo which can run alongside
1509 simple-at is forthcoming in the gnome-mag module.
1511 NOTE: Split magnifier binary, IDL, and magnification
1512 activation code from at-spi into module gnome-mag.
1514 2002-05-03 Marc Mulcahy <marc.mulcahy@sun.com>
1516 * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
1517 cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
1519 2002-05-03 Bill Haneman <bill.haneman@sun.com>
1522 Revved to version 0.13.0
1524 * idl/Accessibility_Registry.idl:
1525 Changed definition of KeySet from sequence of longs to sequence of
1526 KeyDefinitions, and added KeyDefinition struct.
1527 Required for fix to bug 80616.
1529 * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
1530 Changed AccessibleKeySet to Accessibility_KeySet marshalling code
1531 to use new definition (see above).
1533 * registryd/deviceeventcontroller.c: handle_keygrab(),
1534 spi_keyset_contains_key():
1535 Changed to make use of new struct; this allows matching based on
1536 string key-name, for instance "Tab". This also allows matching of
1537 composed characters, non-alphanumeric characters in a way that
1538 doesn't involve dependencies on X keysym codes directly, etc.
1540 * test/key-listener-test.c:
1541 Added test for Alt-Tab key using "string" specification of keyset,
1542 and modified one of the tests to use a keycode-based keyset.
1543 Thus this test both tests and demonstrates the creation and use of
1544 keysets of three forms: specified via keycode array,
1545 keysym array, and string array. (The string case only contains a
1546 single string, i.e. a string array of length 1).
1549 Turned on PRINT_TREE option by default. Also fixed a
1550 string-freeing bug in the PRINT_TREE code.
1551 Added a listener to window:minimize events.
1553 2002-05-08 Padraig O'Briain <padraig.obriain@sun.com>
1555 * atk-bridge/bridge.c:
1556 (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
1557 for window:activate and window:deactiveate
1558 (atk_bridge_property_event_listener atk_bridge_signal_listener
1559 atk_bridge_window_event_listener) Tidy debug code
1561 2002-05-02 Marc Mulcahy <marc.mulcahy@sun.com>
1563 * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
1564 Fixed handling for NULL return value from ATK.
1566 * libspi/action.c libspi/component.c libspi/editabletext.
1567 libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
1568 libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
1569 Removed redundant casts.
1571 * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
1572 Fixed off by one bug.
1574 *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
1575 function not present in idl)
1577 2002-05-02 jacob berkman <jacob@ximian.com>
1579 * atk-bridge/Makefile.am: make atk-bridge a real module
1581 2002-04-26 Radek Doulik <rodo@ximian.com>
1583 * libspi/stateset.c (spi_init_state_type_tables): fix size of
1584 atk_state_types table
1586 2002-04-22 jacob berkman <jacob@ximian.com>
1589 * libspi/Makefile.am: add deps on the built files to help
1590 automake, and don't version the ORBit typelib
1592 2002-04-19 Padraig O'Briain <padraig.obriain@sun.com>
1594 * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
1595 cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
1596 cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c
1597 cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
1598 cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
1599 cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
1600 cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
1601 libspi/accessible.h libspi/accessible.h libspi/base.h
1602 libspi/component.h libspi/editabletext.h libspi/hyperlink.h
1603 libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
1604 libspi/relation.h libspi/remoteobject.h libspi/selection.h
1605 libspi/spi-private.h libspi/statetset.h libspi/table.h
1606 libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
1607 util/mag_client.h util/mag_control.c util/mag_image.c
1608 util/mag_image.h util/magnifier.c util/magnifier.h:
1609 Add missing file headers; standardize existing ones
1611 2002-04-18 Marc Mulcahy <marc.mulcahy@sun.com>
1613 * atk-bridge/bridge.c: Added window event support.
1615 2002-04-18 Michael Meeks <michael@ximian.com>
1617 * libspi/relation.c (impl_getNTargets): impl.
1618 (impl_getTarget): impl.
1620 * libspi/Makefile.am: fix stateset install.
1622 2002-04-17 Bill Haneman <bill.haneman@sun.com>
1625 Started putting useful info in this file.
1627 2002-04-17 Marc Mulcahy <marc.mulcahy@sun.com>
1629 * atk-bridge/bridge.c:
1630 Propagate state-changed notifications to ATs
1632 * cspi/spi_registry.c: update docs to reflect actual behavior of
1633 state-change events.
1635 2002-04-17 Bill Haneman <bill.haneman@sun.com>
1638 Incremented version to 0.12.1
1640 * util/mag_client.h:
1641 Add missing declaration for magnifier_exit,
1642 used by mag_control.c - Forte compiler didn't like
1643 the implicit redeclaration of the function :-(
1646 2002-04-16 Bill Haneman <bill.haneman@sun.com>
1649 Revved version to 0.12 due to API change (see below).
1651 * cspi/spi-roletypes.h:
1652 removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE
1653 definition from the inline docs, and added docs
1654 for SPI_ROLE_LAST_DEFINED.
1657 * cspi/spi_streamablecontent.c:
1658 Added missing seek_type parameter to
1659 (so far unused) method,
1660 AccessibleStreamableContent_seek().
1661 [ RT approval JodyG. ]
1664 Fixed docs for SPI_createAccessibleKeystrokeListener.
1666 * cspi/spi_registry.c:
1667 Fixed docs for SPI_KEYSET_ALL_KEYS.
1669 * docs/reference/cspi/at-spi-cspi-sections.txt:
1670 Added a number of missing APIs to SECTIONS.
1672 2002-04-16 Bill Haneman <bill.haneman@sun.com>
1674 * registryd/Makefile.am:
1676 * cspi/bonobo/Makefile.am:
1677 Add $(X_LIBS) to makefiles.
1679 2002-04-15 Bill Haneman <bill.haneman@sun.com>
1682 Revved version to 0.11.
1684 * libspi/component.c:
1685 Added implementation for grabFocus.
1687 * idl/Accessibility_Component.idl
1688 (Accessibility_Component_grabFocus):
1689 Made this method return boolean to indicate success or failure, to
1690 be consistent with cspi and the corresponding ATK method.
1692 * idl/Accessibility_Selection.idl
1693 (Accessibility_Selection_selectAll) :
1694 Made these methods return boolean to indicate success or
1695 failure, to be consistent with cspi and the corresponding ATK methods.
1697 * idl/Accessibility_EditableText.idl
1698 (Accessibility_EditableText_setTextContents,
1699 Accessibility_EditableText_insertText,
1700 Accessibility_EditableText_cutText,
1701 Accessibility_EditableText_deleteText,
1702 Accessibility_EditableText_pasteText):
1703 Made these methods return boolean to indicate
1706 * cspi/spi_editabletext.c:
1707 Made these methods return booleans.
1709 * libspi/selection.c:
1710 * libspi/component.c:
1711 * libspi/editabletext.c:
1712 Connected the boolean returns from ATK
1713 to the server-side code referenced above.
1715 2002-04-14 Bill Haneman <bill.haneman@sun.com>
1717 * idl/Accessibility_Table.idl: Added missing methods,
1718 Accessibility_Table_addRowSelection,
1719 Accessibility_Table_addColumnSelection,
1720 Accessibility_Table_removeRowSelection,
1721 Accessibility_Table_removeColumnSelection.
1724 Added C wrappers for above IDL:
1725 AccessibleTable_addRowSelection,
1726 AccessibleTable_addColumnSelection,
1727 AccessibleTable_removeRowSelection,
1728 AccessibleTable_removeColumnSelection.
1731 Added server-side implementation code for IDL above, connecting
1732 to pre-existing ATK api.
1734 2002-04-13 Marc Mulcahy <marc.mulcahy@sun.com>
1736 * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
1738 * libspi/accessible.c: Added implementation fo
1739 Accessibility_Accessible_get_state.
1741 * libspi/libspi.h: Added stateset.h to the list of includes.
1743 * libspi/stateset.c: Fixed broken implementation.
1745 2002-04-13 Bill Haneman <bill.haneman@sun.com>
1748 Added implementation code for Accessibility_Magnifier_exit ().
1750 * util/mag_control.c:
1751 Added test code for above method; you can
1752 now kill an existing magnifier via
1753 ./mag_control q, from the util directory.
1755 * test/key-listener-test.c:
1757 Added a new test, for our key listener API.
1759 2002-04-11 Bill Haneman <bill.haneman@sun.com>
1761 * test/app.c, test/keysynth-demo.c:
1763 Replace use of snprintf with g_snprintf.
1764 (fix for bugzilla 78249)
1766 2002-03-27 Michael Meeks <michael@ximian.com>
1770 * util/Makefile.am (INCLUDES): fix.
1771 (DONT_DIST_SOURCE): don't distribute the
1774 * libspi/Makefile.am (dist-hook): ditto.
1776 2002-03-27 Padraig O'Briain <padraig.obriain@sun.com>
1778 * libspi/hypertext.c:
1779 Fix warnings when yelp is used with atk-bridge
1781 2002-03-21 Michael Meeks <michael@ximian.com>
1783 * libspi/application.c (spi_application_new):
1784 use spi_accessible_construct so we use the AtkObject
1787 2002-03-19 Michael Meeks <michael@ximian.com>
1789 * registryd/registry.c (desktop_remove_application),
1790 (desktop_add_application): clean coding style.
1792 * registryd/desktop.c (spi_desktop_remove_application),
1793 (spi_desktop_add_application): kill re-enterency hazards.
1794 (spi_desktop_dispose): remove bogus redundant cast
1795 obscuring bug; fix bug too.
1796 (spi_desktop_init): make the desktop object immortal.
1798 2002-03-16 Bill Haneman <bill.haneman@sun.com>
1801 Added a #define-guarded tree-traversal step
1802 when enumerating the apps (diagnostic tool).
1804 2002-03-15 Bill Haneman <bill.haneman@sun.com>
1806 * idl/Accessibility_Role.idl:
1807 Added ROLE_DRAWING_AREA which seemed to be missing from the
1810 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1812 * cspi/spi-roletypes.h cspi/spi_accessible.c
1813 idl/Accessibility_Role.idl libspi/accessible.c: synched up role
1816 * registryd/desktop.c registryd/desktop.h registryd/registry.c:
1817 Added signals to SpiDesktop and callbacks in SpiRegistry to notify
1818 AT when applications are added and removed from the desktop. This
1819 reverts the previous broken implementation using the backing
1820 AtkObject for the SpiDesktop.
1822 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1824 * registryd/desktop.c: emit the "children-changed::add" and
1825 "children-changed::remove" signals on the backing ATK object for
1826 the desktop so AT can tell when applications are started and shut
1829 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1831 * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
1833 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1835 * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
1837 * cspi/spi_accessible.c: Implemented c bindings for stateset support
1839 * cspi/state-types.h: synched with IDL and ATK
1841 2002-03-13 Bill Haneman <bill.haneman@sun.com>
1843 * libspi/accessible.c
1844 (impl_accessibility_accessible_get_child_at_index):
1845 Change return value for g_return_if_fail ()
1846 to CORBA_OBJECT_NIL instead of "0" (!)
1848 * registryd/Makefile.am:
1849 * registryd/Accessibility_Register.server.in:
1850 Changed name of executable, "registryd",
1851 to something more informative:
1854 2002-03-13 Michael Meeks <michael@ximian.com>
1856 * atk-bridge/bridge.c (atk_bridge_init): don't register
1857 if we're in a bonobo-component, rather than a bonobo app.
1859 2002-03-13 Michael Meeks <michael@ximian.com>
1861 * atk-bridge/bridge.c (gtk_module_init): split
1862 out body to (atk_bridge_init): here, since otherwise
1863 we get symbol conflicts and oddness when invoked
1864 from (gnome_accessibility_module_init): here (upd.)
1866 2002-03-11 Bill Haneman <bill.haneman@sun.com>
1869 New file. Explicitly allow "build sheriff" putbacks provided
1870 they are tested on Solaris.
1872 * docs/reference/cspi/Makefile.am:
1873 Added '-' to the "cp" command for index.sgml.
1874 ("patch by thomasvs, soon coming to a GUADEC near you")
1877 Incremented version number (0.9.0) for new release.
1878 Changed macro that checks for popt, to better detect
1879 obsolete versions of popt.
1882 Added X_LIBS to AC_SUBST, for applications
1883 that call Xlib API directly.
1886 2002-03-07 Bill Haneman <bill.haneman@sun.com>
1889 Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
1892 Fix regression caused by hard-coding major
1893 version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
1896 * test/test-simple.c (test_editable_text),
1897 (test_test): revert previous change (error was
1898 a regression in gail which is now fixed).
1900 2002-03-04 Michael Meeks <michael@ximian.com>
1902 * test/test-simple.c (test_editable_text),
1903 (test_text): pass G_MAXINT instead of '-1' for
1904 whole string - is this a good thing !?
1906 * cspi/spi_accessible.c
1907 (Accessible_getRelationSet): fix crasher bug
1908 overwriting the end of the array.
1910 * test/test-simple.c (validate_accessible): free,
1911 not g_free returned relation set.
1913 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
1915 * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
1916 implemented stateset support
1918 * idl/Accessibility_State.idl: Made necessary changes to
1919 the IDL to support state sets.
1921 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1923 * registryd/deviceeventcontroller.c:
1924 Added implementation for generateMouseEvent.
1926 * cspi/spi_registry.c:
1927 Connected new implementation for generateMouseEvent
1930 2002-02-12 Bill Haneman <bill.haneman@sun.com>
1933 Incremented revision (but no change in public API
1934 outside of 'utils', which are not installed public yet.)
1936 * libspi/component.c:
1937 Changed to use atk_component API for layers and
1938 mdi_zorder, instead of deprecated atk_object API.
1940 Magnification Utility Enhancements:
1943 Added implementation of createZoomRegion, clearAllZoomRegions,
1944 resizeZoomRegion. Added new commandline argument
1945 "--no-initial-region". Note that clearAllZoomRegions doesn't
1946 unmap the old '0' region as it should (yet), and the other
1947 methods only work when creating/resizing a single region,
1948 which is "region 0".
1949 (Code for multiple region support will be added later.)
1952 Now we raise the magnifier window each time it's refreshed;
1953 this will help keep it on top.
1955 * util/mag_client.h:
1956 Added simple wrappers for above, used by mag_control.
1957 For general use, it's recommended to use the bonobo magnifier
1958 control API directly instead of using these wrappers.
1961 Moved ZoomRegionData from magnifier.c to this file.
1963 * util/mag_control.c:
1964 Added some code to exercise new IDL implementations.
1966 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
1968 * libspi/text.c: Provide implementation for getAttributes.
1970 2002-02-04 Bill Haneman <bill.haneman@sun.com>
1973 Incremented revision.
1975 * test/test-simple.c:
1976 Replaced use of deprecated g_main_iteration with
1977 g_main_context_iteration.
1979 2002-01-28 Padraig O'Briain <padraig.obriain@sun.com>
1982 Incremented revision for desktop alpha 2.
1984 2002-01-28 Mark McLoughlin <mark@skynet.ie>
1986 * libspi/remoteobject.[ch]: make RemoteObject and interface rather
1989 * test/simple-at.c: include netinet/in.h.
1991 2002-01-24 Mark McLoughlin <mark@skynet.ie>
1993 * cspi/spi_accessible.c: (Accessible_getRelationSet):
1994 use NULL, not CORBA_OBJECT_NIL.
1996 * libspi/accessible.c:
1997 (impl_accessibility_accessible_get_relation_set):
1998 allocate the sequence correctly.
2000 * libspi/remoteobject.h: kill spi_remote_object_new.
2002 * test/test-simple.c: (validate_accessible): add code
2003 to test relation sets, now all we need is to figure
2004 out how to excercise this code path :/
2006 2002-01-18 Michael Meeks <michael@ximian.com>
2008 * test/test-simple.c
2009 (key_listener_cb): consume the key.
2010 (test_keylisteners): update.
2011 (main): wait for any pending unrefs on events.
2013 * registryd/deviceeventcontroller.c
2014 (spi_controller_update_key_grabs): only re-issue the
2015 grab on a key release.
2016 (spi_device_event_controller_forward_key_event):
2017 refresh the keygrabs before we notify the listeners,
2018 to reduce the X ungrab / re-grab race.
2019 (spi_controller_register_with_devices): remove
2020 XSelectInput - we do that with the gdk_window_ call.
2021 (_spi_controller_device_error_handler): return a value.
2022 s/GDK_DISPLAY/spi_get_display/
2024 2002-01-17 Michael Meeks <michael@ximian.com>
2026 * registryd/deviceeventcontroller.c
2027 (_deregister_keygrab): don't blow out the later
2030 * test/test-simple.c (test_keylisteners): do a
2031 more intelligent validation.
2033 2002-01-14 Michael Meeks <michael@ximian.com>
2035 * atk-bridge/bridge.c
2036 (gnome_accessibility_module_init),
2037 (gnome_accessibility_module_shutdown): impl.
2038 (gtk_module_init): protect vs. double inits.
2039 (add_signal_listener): impl.
2040 (spi_atk_bridge_state_event_listener): kill
2041 (deregister_application): split out of
2042 (spi_atk_bridge_exit_func): here.
2044 2002-01-18 Bill Haneman <bill.haneman@sun.com>
2047 Added caret tracking when using magnifier, and
2048 now use text bounds for focus tracking of text elements, rather than
2049 the component bounds - this is helpful for short text fields in long
2050 table cells, at high magnification.
2052 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2054 * registryd/deviceeventcontroller.c:
2055 Regression fix for keylistener de-registration; global keygrabs
2056 were not being released when deregisterKeystrokeListener was
2057 called in cspi, since
2058 Accessibility_DeviceEventController_deregisterKeystrokeListener
2059 was called with a zero-length keyset. That is because the cspi
2060 method, SPI_deregisterKeystrokeListener, does not take a keyset
2061 parameter but instead should remove all the key grabs held be a
2063 The code in impl_deregister_keystroke_listener was changed to copy
2064 the keylist from the listener instance previously registered with
2065 the DeviceEventController before releasing the grabs.
2067 * registryd/registry.c:
2068 * registryd/deviceeventcontroller.c:
2069 * libspi/spi-private.h:
2071 Changed spelling of "re-enterant" to "re-entrant" globally.
2073 2002-01-16 Bill Haneman <bill.haneman@sun.com>
2075 * test/test-simple.c:
2076 Changed key listeners test - the test was slightly mis-using the
2077 (admittedly poorly documented) SPI_generateKeyboardEvent API.
2078 It now uses '=' as the key event listened to and generated,
2079 relying on a keysym match rather than assuming that keycode 33
2080 is always equal to keysym '!'.
2082 2002-01-15 Bill Haneman <bill.haneman@sun.com>
2085 Changed simple-at to use a specific keyset, rather than
2086 SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2087 manager, desktop, etc.
2089 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2091 * registryd/deviceeventcontroller.c:
2092 Replaced standard X error handler with a special handler that
2093 is non-fatal for failed keygrabs. This works around
2094 problems with keygrab clashes sometimes observed on
2096 Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate
2097 mouse handling code as yet).
2099 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2102 Incremented revision for desktop alpha release.
2105 Fixed a couple of the more glaring errors (still not
2108 2002-01-11 Michael Meeks <michael@ximian.com>
2110 * registryd/deviceeventcontroller.c
2111 (spi_device_event_controller_forward_key_event): kill
2112 XUngrabKey / XKeyGrab race.
2113 (spi_controller_grab_keyboard): rename to
2114 (spi_controller_update_key_grabs): this, and deal
2115 with incremental adding / removing grabs more
2117 (_register_keygrab): ensure we're not pending a remove.
2118 (spi_grab_mask_free): impl.
2119 (spi_controller_register_global_keygrabs): split out
2121 (handle_keygrab): impl.
2122 (_deregister_keygrab): impl.
2123 (spi_controller_deregister_global_keygrabs): impl.
2124 (spi_controller_update_key_grabs): re-issue the grab if
2125 we just recieved a notification.
2127 * test/test-simple.c (key_listener_cb): remove debug.
2129 * registryd/deviceeventcontroller.c
2130 (spi_controller_register_device_listener): after
2131 registering a global keygrab, actualy register it !
2132 don't wait for a timeout; doh !
2134 * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2135 to make it more readable / manipulable.
2136 s/grabmask/grab_mask/ s/refcount/ref_count/
2137 s/keyval/key_val/ s/modmask/mod_mask
2139 2002-01-08 Michael Meeks <michael@ximian.com>
2141 * registryd/deviceeventcontroller.c
2142 (spi_controller_register_with_devices): use gdk calls to
2144 (global_filter_fn): implement the filter.
2145 (spi_device_event_controller_check_key_event): rename to
2146 (spi_device_event_controller_forward_key_event): this & upd.
2147 (spi_get_display): replace with GDK_DISPLAY.
2149 * registryd/deviceeventcontroller.c
2150 (spi_controller_deregister_device_listener): unroll into
2151 (impl_deregister_keystroke_listener): here to simplify.
2152 (spi_controller_register_global_keygrabs): split cut and
2153 paste (!) out into (_register_keygrab): here, shorter & sweeter.
2154 (spi_controller_deregister_device_listener): remove.
2155 (impl_register_mouse_listener): remove, no mouse listener
2156 support in at-spi-1.0
2158 * registryd/registry.c
2159 (_device_event_controller_hook): kill.
2160 (spi_registry_init): upd.
2162 * registryd/deviceeventcontroller.c
2163 (spi_device_event_controller_class_init): upd.
2164 (spi_check_key_event): merge into.
2165 (spi_device_event_controller_check_key_event):
2166 here and kill strange static ev init, don't leak
2167 the x_event - nor dynamicaly allocate it.
2169 * registryd/registry-main.c (main): re-direct
2170 timeout to remove strange vtable mess.
2172 * registryd/deviceeventcontroller.c
2173 (remove_listener_cb): impl.
2174 (spi_controller_deregister_device_listener):
2175 fix re-enterancy hazard.
2177 2002-01-07 Michael Meeks <michael@ximian.com>
2179 * registryd/deviceeventcontroller.c
2180 (spi_device_event_controller_new): upd.
2181 (impl_notify_listeners_sync): upd. debug.
2182 (spi_notify_keylisteners): fix re-enterancy hazards,
2183 prettify, remove O(n*n) iteration.
2184 (spi_controller_grab_keyboard): fix iteration.
2185 (spi_check_key_event): re-format to suit coding style.
2186 Clean all the warnings - we're warning free.
2188 * registryd/deviceeventcontroller.h:
2189 * registryd/registry.h: make mutualy referential with
2190 typesafe forward references instead of (!) void pointer
2193 2002-01-11 Michael Meeks <michael@ximian.com>
2195 * cspi/spi_accessible.c (role_names): add a role name
2196 to sync this array with the enum; and make the regression
2199 2002-01-10 Michael Meeks <michael@ximian.com>
2201 * cspi/spi_registry.c (SPI_generateKeyboardEvent):
2202 allow expansion of enumeration & kill warning.
2204 * test/test-simple.c (key_listener_cb): impl.
2205 (test_keylisteners): impl.
2207 * cspi/spi-listener.h: make listener signatures const
2208 on the provided (const) events.
2210 * test/keysynth-demo.c: upd. to const events.
2212 * test/simple-at.c: ditto.
2214 2002-01-11 Bill Haneman <bill.haneman@sun.com>
2217 Rev the version to 0.5 (the previous tarball was named 0.4,
2218 even though the micro number was 3), so we need to rev upwards
2219 again for beta2/"desktop-alpha"
2222 Checked in a demo script, which requires editing before use!
2223 Proceed with caution.
2226 Fixed typo in header which was redefining SPI_ACTION_CLASS.
2228 * cspi/spi_accessible.c:
2229 Add a couple of missing enum initializations, and fix some enum
2232 * cspi/spi_registry.c:
2233 Add comment describing keystring parameter to SPI_generateKeyboardEvent.
2235 * docs/reference/cspi/at-spi-cspi-sections.txt:
2236 Remove/fix a couple of broken document references.
2239 Minor tweaks to the demo. We now (sigh) use Alt-SHIFTLOCK as well
2240 as Alt-Control to listen for commands, since on some systems
2241 Control-Alt may already be grabbed.
2243 2002-01-10 Bill Haneman <bill.haneman@sun.com>
2246 Update version number to 0.4 for Beta2.
2248 * libspi/accessible.c, libspi/accessible.h:
2249 Expose spi_accessible_construct, to enable libgail-gnome
2250 construction from spi_accessible subtype.
2252 * utils/magnifier.c:
2253 Workaround for bug in some non-gnome-compliant window managers
2254 which made magnifier resize improperly.
2256 2002-01-09 Bill Haneman <bill.haneman@sun.com>
2258 * libspi/accessible.c: (spi_accessible_new) :
2259 Move the test for SPI_IS_REMOTE_OBJECT to
2260 spi_accessible_new_return, fixing a bug and compile time warning.
2262 2002-01-08 Michael Meeks <michael@ximian.com>
2264 * registryd/registry.c (parse_event_type): remove strndup.
2266 * libspi/Makefile.am (libspi_la_SOURCES): remove
2267 sources already included in the headers section.
2269 * libspi/util.c: add.
2271 * libspi/spi-private.h: add.
2273 * registryd/registry.c: update to moved list iterators.
2275 2002-01-05 Michael Meeks <michael@ximian.com>
2277 * test/simple-at.c (main): upd. auto-module set to atk-bridge
2279 * test/test-simple.c (main): ditto.
2281 2002-01-04 Michael Meeks <michael@ximian.com>
2283 * libspi/accessible.c (spi_accessible_new): remove 2nd,
2284 redundant construct.
2286 * registryd/registry.c
2287 (get_listener_list): impl.
2288 (impl_accessibility_registry_register_global_event_listener):
2289 re-impl. to simplify using ~, remove dodgy const cast off.
2290 (parse_event_type): constify.
2291 (impl_accessibility_registry_deregister_global_event_listener_all):
2292 re-write, more efficiency and simplicity, kill re-enterancy
2294 (compare_listener_corbaref, compare_corba_objects),
2295 (compare_listener_quarks): define out.
2296 (impl_accessibility_registry_deregister_global_event_listener):
2297 re-write for effiency, and nail re-enterancy hazard.
2298 (impl_accessibility_registry_get_desktop_list): impl.
2299 (re_enterant_list_delete_link): impl.
2300 (re_enterant_list_foreach): impl.
2301 (remove_listener_cb): impl.
2302 (_registry_notify_listeners): kill.
2303 (notify_listeners_cb): impl.
2305 * cspi/spi_registry.c (SPI_freeDesktopList): impl.
2306 (SPI_getDesktopList): impl.
2308 * test/test-simple.c (test_desktop): test the methods.
2310 2002-01-03 Michael Meeks <michael@ximian.com>
2312 * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
2313 keystrings since we free them
2314 (SPI_freeAccessibleKeySet): in here.
2316 * libspi/accessible.c (spi_accessible_new): kill warning,
2317 wonder what is going on with the constructor here.
2319 2002-03-01 Bill Haneman <bill.haneman@sun.com>
2321 * libspi/accessible.c (spi_accessible_new ()) :
2322 Added check to see if AtkObject is an SpiRemoteObject before
2323 creating an SpiAccessible.
2325 2002-05-01 Bill Haneman <bill.haneman@sun.com>
2327 * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
2328 Enable keygrabs using the Control modifier, now that they are
2329 working properly (they were previously disabled).
2332 Change the command keygrab for this demo to "Control+Alt", so as
2333 to conflict with fewer other key commands on the system; this
2334 means that the quit command for "simple-at" is now "Ctrl-Alt-q".
2336 Removed a pointlessly-chatty keylistener for unshifted keys
2337 (shifted keys are still reported).
2339 2002-02-01 Bill Haneman <bill.haneman@sun.com>
2341 * libspi/remoteobject.h:
2342 * libspi/remoteobject.c:
2343 Added definitions for special AtkObject subtype, required for
2344 support of remote components (specifically, used by BonoboControl
2345 accessibility implementation).
2347 2002-01-02 Marc Mulcahy <marc.mulcahy@sun.com>
2349 * cspi/spi.h: synched relation types with ATK
2351 * cspi/spi_accessible.c: Added implementations of
2352 AcccessibleRelation_* methods
2354 * idl/Accessibility_Relation.idl: added getRelationTypeName
2355 method. Synched known relation types with ATK. Allowed for
2356 relation type extension with the RELATION_EXTENDED type.
2358 * libspi/relation.c: Provided implementations for
2359 AccessibleRelation methods.
2361 2002-01-01 Bill Haneman <bill.haneman@sun.com>
2363 API tweaks for today's API 'freeze'.
2366 Added placeholder functions to allow future compatible expansion
2367 of the IDL interfaces.
2369 * idl/Accessibility_Registry.idl:
2370 Changed generateKeyEvent to generateKeyboardEvent. Changed
2371 signature of this method to accept an optional keystring in
2372 parameter (for complex text input synthesis) and changed use of
2373 simple 'boolean' parameter in registerKeystrokeListener to a
2374 struct, EventListenerMode.
2376 * cspi/spi_accessible.c:
2378 * cspi/spi_streamablecontent.c:
2379 Added references to AccessibleStreamableContent interface, and
2380 definition and implementation of AccessibleStreamableContent
2383 * cspi/spi_registry.c:
2385 Changed generateKeyEvent API to generateKeyboardEvent,
2386 taking a new (optional) keystring parameter to support complex
2391 Renamed directory (to better reflect its actual purpose, bridging
2392 from at-spi to ATK). The .so module is also now named
2395 * idl/Accessibility_Hypertext.idl:
2396 * libspi/accessible.c:
2397 * libspi/hypertext.h:
2398 * libspi/hypertext.c:
2399 Changed Accessibility_Hypertext to *not* derive from
2402 * cspi/spi_registry.c:
2403 Added list of legal event type names for 'window' events, which
2404 completes the registry event API.
2406 2001-12-22 Marc Mulcahy <marc.mulcahy@sun.com>
2408 * at-bridge/bridge.c: Added registration for separate
2409 "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
2410 signals. If either of the first two parameters to the generic
2411 bridge signal handler are ints, they are passed on as event
2412 details. This allows an AT to determine what text was inserted.
2414 2001-12-21 Bill Haneman <bill.haneman@sun.com>
2416 * registryd/deviceeventcontroller.c:
2417 Fixed regressions in generateKeyEvent caused by the removal of
2418 gdk_init from registryd; we now use pure X calls to connect to the
2419 display, which makes sense because deviceeventcontroller already
2420 uses a fair bit of X API (should eventually be migrated to a
2421 'portability layer').
2423 * registryd/desktop.c:
2424 Fixed minor regression in spi_desktop_init, changed the way the
2425 desktop name is being set to work with new spi_base API
2426 (gobject-based, rather than AtkObject-based).
2428 * registryd/Makefile.am:
2429 Minor revision of makefile to use XTST_LIBS variable rather than
2430 hard-wiring the Xtst LD_ADD element.
2432 * test/keysynth-demo.c:
2433 Tweaked an output message; added initialization of the
2434 'keystrings' member of the "switch listener" key_set.
2436 * libspi/relation.c:
2437 Squashed compile-time warning.
2439 * libspi/accessible.c:
2440 Cosmetic and formatting fixes, renamed a static method.
2442 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
2444 * libspi/accessible.c
2446 * libspi/application.c
2449 * libspi/component.c
2450 * libspi/editabletext.c
2451 * libspi/hyperlink.c
2452 * libspi/hypertext.c
2454 * libspi/selection.c
2458 * registryd/desktop.c:
2459 Changed SpiBase to contain a GObject pointer rather than an AtkObject
2461 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2463 * idl/Accessibility_Registry.idl:
2464 Added boolean member 'is_text' to DeviceEvent. This is for the
2465 use of key events, and helps prevent ambiguity between composed
2466 key strings and keysym names, since both may potentially be
2467 returned in the 'event_string' member.
2469 * at-bridge/bridge.c:
2470 * registryd/deviceeventcontroller.c:
2471 Use the 'is_text' member when notifying device event listeners.
2472 Knon issue: composed characters are not dealt with correctly by
2473 the global key listener implementation yet.
2475 2001-12-17 Bill Haneman <bill.haneman@sun.com>
2477 * at-bridge/bridge.c:
2478 Namespaced local static methods to spi_atk_bridge_* where
2479 previously named bridge_*, and spi_* elsewhere.
2481 * at-bridge/bridge.c:
2482 * cspi/bonobo/cspi-bonobo-listener.c:
2483 Added demarshalling/conversion for string member of
2484 Accessibility_DeviceEvent to AccessibleKeystroke.
2486 * registryd/deviceeventcontroller.c:
2487 Added code to fill the Accessibility_DeviceEvent key string value
2488 member for global key events (i.e. from XGrabKey), to match
2489 behavior of Accessibility_DeviceEvent from the toolkit key events
2490 from the bridge. Fixed timestamp in global key event notifications.
2493 Added printout of key event's string value to
2494 report_ordinary_key_event, for demo/debugging purposes.
2496 2001-12-15 Bill Haneman <bill.haneman@sun.com>
2498 * idl/Accessibility_Registry.idl:
2499 Removed Accessibility_KeyStroke structure in favor of generic
2500 Accessibility_DeviceEvent structure.
2501 Changed Accessibility_ControllerEventMask from a struct to an
2504 * at-bridge/bridge.c:
2505 Changed APIs to use DeviceEvent structure as above, and removed
2506 bogus casting between these event structures.
2508 * cspi/spi-listener.h:
2509 Added keystring member of AccessibleKeystroke structure, to enable
2510 matching on event "names" rather than only hardware codes and
2514 Added keystrings member of AccessibleKeySet struct, to allow
2515 matching on event names (as above).
2516 Added declarations for SPI_createAccessibleKeySet and
2517 SPI_freeAccessibleKeySet. Due to changes in libspi, we now pass
2518 event modmasks directly as unsigned ints rather than structs with
2519 refcounts, in the DeviceEventController methods.
2521 * cspi/spi_registry.c:
2522 Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
2524 * cspi/spi-roletypes.h:
2525 Added documentation of newly added SPI Roles.
2527 * cspi/bonobo/cspi-bonobo-listener.c:
2528 Changes in support of API changes above.
2530 * libspi/accessible.c:
2531 Converted APIs to use DeviceEvent structure (see IDL changes
2534 * registryd/deviceeventcontroller.c:
2535 Added DEControllerGrabMask structure to track keygrabs not only by
2536 modmask but by keyset as well; this allows us to do "global"
2537 (i.e. X) keygrabs on a per-key or keyset basis rather than always
2538 grabbing on AnyKey and then filtering after-the-fact.
2539 Bugfixes for event filtration mean that we don't get false matches
2540 on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
2542 * registryd/deviceeventcontroller.c:
2543 Namespaced a number of static methods to use spi_ prefix. Major
2544 revision to internals of global (i.e. X) key grabs.
2546 * registryd/deviceeventcontroller.h:
2547 Removed keymask_list and added keygrabs_list to
2548 SpiDeviceEventController struct.
2551 Added use of SPI_createAccessibleKeySet API when creating a
2552 listener for only one key. Attach a listener to "shift spacebar
2553 SPI_KEY_RELEASE" as a demonstration. Changed (incorrect) usage of
2554 X key event names to SPI key event names, so that listeners are
2555 registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
2557 * test/keysynth-demo.c:
2558 Changed (incorrect) use of X key event names (KeyPressed,
2559 KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
2562 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2564 * libspi/accessible.c:
2565 Convert all AtkRole enumerations to Accessibility_Role enums when
2566 getting a role from an AtkObject.
2568 * cspi/spi_accessible.c:
2569 Complete the conversion of Accessibility_Role enums at runtime to
2570 AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
2571 role enums correctly match those given in spi-roletypes.h.
2572 Re-synchronize the local names list for AccessibleRole_getName ().
2573 AccessibleRole_getName is now deprecated, since it duplicates the
2574 more reliable Accessible_getRoleName.
2575 Added some role types from Accessibility_Role.idl.
2577 * idl/Accessibility_Role.idl:
2578 Added some role types used by AtkRole.
2580 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2583 * cspi/spi_registry.c:
2585 * cspi/cspi-bonobo-listener.c:
2586 Namespaced all methods that did not begin with an "SPI_" or
2587 "Accessible" prefix to "SPI_".
2590 Homogenized internal function namespace to "cspi_" for statics.
2593 Patched tests to use the new CSPI API.
2595 * docs/reference/cspi/at-spi-cspi-sections.txt:
2596 Updated docs to reflect namespace changes, and added a number of
2597 methods to the documentation.
2599 * registryd/registry.c:
2600 Changed use of strings and string hashes in listener event
2601 matching and parse_event_string to use GQuark, which is guaranteed
2604 * registryd/registry.h:
2605 Squashed annoying warning.
2607 * idl/Accessibility_Role.idl:
2608 Extended range of available Accessibility_Role values.
2610 * cspi/spi_accessible.c:
2611 Re-ordered role names.
2613 2001-12-12 Bill Haneman <bill.haneman@sun.com>
2615 * idl/Accessibility_Value.idl:
2616 Revert use of union back to CORBA_double, since the double type is
2617 more efficient and can contain the other types without loss of
2620 * idl/Accessibility_Accessible.idl:
2621 Added method Accessibility:Accessible:getRoleName, to complement
2622 Accessibility:Accessible:getRole.
2624 * cspi/spi_accessible.c:
2626 Added C binding for above, Accessible_getRoleName (), and changed
2627 signature of Accessible_getRole () to return an AccessibleRole.
2629 * cspi/spi-roletypes.h:
2630 Changed AccessibleRole_getName to return a char * instead of a
2631 const char *. This method is now at least temporarily deprecated
2632 in favor of asking Accessibles for their RoleNames directly.
2635 Revert to match Accessibility_Value.idl;
2639 Change signature of AccessibleValue methods to use double rather
2643 * cspi/spi_accessible.c:
2644 Changed Accessible_getRole to return an AccessibleRole enum rather
2645 than a UTF-8 string. The UTF-8 string can still be obtained via
2646 AccessibleRole_getName ().
2648 * test/test-simple.c:
2649 Add test_action. Small fixup to match API change to Accessible_getRole.
2652 Bugfix for get_action_from_servant ().
2654 2001-12-11 Michael Meeks <michael@ximian.com>
2656 * libspi/libspi.h: remove registry.h and
2657 desktop.h, deviceeventcontroller.h
2659 * libspi/Makefile.am: remove registry.[ch],
2660 desktop.[ch], deviceeventcontroller.[ch]
2662 * registryd/Makefile.am: add registry.[ch],
2663 desktop.[ch], rename registryd.c to registry-main.c.
2664 add deviceeventcontroller.[ch]
2666 2001-12-11 Bill Haneman <bill.haneman@sun.com>
2669 Replace setenv() call with putenv ().
2671 * libspi/component.c:
2672 Bugfix in AccessibleComponent_getExtents (),
2675 2001-12-11 Michael Meeks <michael@ximian.com>
2677 * libspi/image.c (impl_getImageExtents): impl.
2678 (spi_image_class_init): upd.
2681 (AccessibleImage_getImageDescription): fix daft bug
2684 * test/test-simple.c (global_listener_cb): update
2685 to only quit if not --poke
2686 (main): catch --poke.
2687 (validate_accessible): upd. dumping, call test_image
2690 * libspi/Makefile.am (IDL_DEPS): fixup the IDL
2693 * idl/Accessibility.idl: update all IDL includes.
2695 * idl/*.idl - rename to namespace - this sucks, blame
2696 mjs' bad decision for oafd.
2698 * test/test-simple.c (create_test_window): add more tests.
2699 (create_tree): split this out.
2700 (validate_accessible): bugfix.
2702 2001-12-11 Michael Meeks <michael@ximian.com>
2704 * cspi/bonobo/cspi-bonobo-listener.c:
2705 (cspi_kestroke_listener_unref),
2706 (cspi_event_listener_unref): impl. undoing previous
2707 homenous environment - for Bill.
2709 * cspi/spi_table.c (long_seq_to_array): use
2712 * cspi/spi_main.c: split out all bonoboish bits into
2715 * cspi/spi-impl.h: upd. typedefs.
2717 * cspi/spi_registry.c: update to lowlevel API,
2718 return booleans to indicate success in some places.
2720 * cspi/spi_event.c: update to lowlevel API.
2722 * cspi/bonobo/Makefile.am: add.
2724 * cspi/bonobo/cspi-lowlevel.h: add
2726 * cspi/bonobo/cspi-bonobo.c: add
2728 * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
2730 * cspi/Makefile.am: remove spi-listener-impl.[ch],
2731 (SUBDIRS): add bonobo, link in the libs.
2733 * cspi/spi-util.c: kill this file.
2735 * TODO: merge in my bits.
2737 2001-12-11 Michael Meeks <michael@ximian.com>
2739 * test/test-simple.c (test_value, test_table, main):
2740 remove unused variables causing warnings.
2742 * configure.in: cleanup checks - require gail.
2744 2001-12-11 Bill Haneman <bill.haneman@sun.com>
2747 Changed Value interface to use SValue (scalars) rather than
2748 assuming all values are floats. This allows floats, doubles,
2749 longs, shorts, and unsigned values to be manipulated.
2750 Introduced Accessibility:SValue union.
2753 Updated to use new API above, and to work correctly with GValues
2754 of different types in AtkValue.
2757 Updated to use new API above. cspi's API is as yet unchanged.
2760 Updated the Value revision action item.
2762 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2764 * test/test-simple.c:
2765 Added test_table (GtkTreeView widget in test window to follow).
2766 Un-commented test_value, added GtkRange widget.
2767 Added GtkTreeView widget with GtkListStore. It passes regression
2768 test but leaks one SPI object for some reason.
2771 Fixed bug in impl__set_currentValue.
2773 2001-12-10 Michael Meeks <michael@ximian.com>
2775 * cspi/spi_text.c: audit for exception handling,
2776 tolerating NULL object references safely etc.
2778 * cspi/spi_value.c: ditto.
2780 * cspi/spi_table.c (AccessibleTable_getSummary),
2781 (AccessibleTable_getAccessibleAt),
2782 (AccessibleTable_getRowHeader),
2783 (AccessibleTable_getColumnHeader),
2784 (AccessibleTable_getCaption): fix bugs hidden by
2786 (long_seq_to_array): impl.
2787 (AccessibleTable_getSelectedRows),
2788 (AccessibleTable_getSelectedColumns): use it.
2790 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2793 Added a TODO list (rough and short for now).
2795 * cspi/spi_hyperlink.c:
2796 * cspi/spi_hypertext.c:
2797 Fixed macro name typos, and remove use of obsolete macro in
2798 AccessibleHyperlink_getLink.
2800 * cspi/spi_action.c:
2801 * cspi/spi_accessible.c:
2802 * cspi/spi_application.c:
2803 * cspi/spi_component.c:
2804 * cspi/spi_selection.c:
2807 Documentation fixes (removed return values from ref/unref methods).
2809 2001-12-10 Michael Meeks <michael@ximian.com>
2811 * cspi/spi_action.c: audit for exception handling,
2812 tolerating NULL object references safely etc.
2814 * cspi/spi_accessible.c: ditto.
2816 * cspi/spi_component.c: ditto.
2818 * cspi/spi_editabletext.c: ditto.
2820 * cspi/spi_hyperlink.c: ditto.
2822 * cspi/spi_hypertext.c: ditto.
2824 * cspi/spi_image.c: ditto.
2826 * cspi/spi_selection.c: ditto.
2828 2001-12-10 Michael Meeks <michael@ximian.com>
2830 * configure.in: use cspi/libspi.pc.in instead.
2832 * Makefile.am (pkgconfig_DATA): upd. to match.
2834 * test/simple-at.c (report_focus_event): kill hacks around
2835 bad return values, use putenv not setenv
2837 * libspi/desktop.c (impl_desktop_get_child_at_index): don't
2838 fire ChildGone - I killed it.
2840 * libspi/component.c
2841 (impl_accessibility_component_get_extents): remove
2844 * idl/Accessible.idl: kill ChildGone exception.
2846 * cspi/*.[ch]: kill int return from ref / unref.
2848 * cspi/spi_main.c (cspi_object_add_check): fold into
2849 (cspi_object_add): here.
2851 * cspi/spi_component.c (AccessibleComponent_getExtents):
2852 handle exceptions elegantly.
2854 * cspi/spi-private.h (cspi_check_ev_return),
2855 (cspi_return_if_fail): impl.
2857 * cspi/spi_accessible.c: use extensively.
2858 (AccessibleStateSet_equals): add direct compare check.
2860 * cspi/spi_selection.c: tolerate NULL objs, and check
2861 exceptions before return.
2863 * cspi/spi-util.c (cspi_warn_ev): rename to
2864 (cspi_check_ev): this & don't pass ev in; no point.
2866 2001-12-10 Michael Meeks <michael@ximian.com>
2868 * test/test-simple.c: use putenv not setenv
2869 (get_environment_vars): more chatty if you're not using
2872 * test/simple-at.c: do the setenv so more people see the
2875 2001-12-10 Bill Haneman <bill.haneman@sun.com>
2877 * libspi/registry.c:
2878 Changed check of CORBA_environment on notification to be a warning
2879 instead of an error for the moment, since we can recover from this
2880 error when caused by a queued notification from a dead app.
2883 Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
2884 used by all current implementors of AtkValue), and coerce to
2885 CORBA_float. (Proper general case fix may require change to Value.idl).
2887 2001-12-09 Bill Haneman <bill.haneman@sun.com>
2891 * cspi/spi_accessible.c:
2892 Documentation fixes: added user_data params to documentation for
2893 listeners and callbacks.
2895 * cspi/spi_accessible.c:
2896 Changed AccessibleStateSet_compare to return a
2897 StateSet rather than return the difference set into a third parameter.
2900 2001-12-09 Bill Haneman <bill.haneman@sun.com>
2903 Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
2904 remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
2908 Remove subdirectory po from SUBDIRS for now.
2910 * at-bridge/bridge.c:
2911 Beefed up a couple of debug printouts.
2912 One-line fix for signal notification name formatting.
2914 * libspi/accessible.c:
2915 Added assertion to spi_accessible_new ().
2917 * libspi/application.c:
2918 Put #ifdef qualifiers around a printf.
2921 Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
2923 * registryd/Makefile.am:
2925 Replaces use of XML_I18N_MERGE_SERVER_RULE with
2926 INTLTOOL_SERVER_RULE macro.
2929 Added an event listener for several ATK signals, for
2930 testing and debugging. Removed a few g_warnings.
2931 Added test output if focussed item implements the Value interface.
2933 * test/test-simple.c:
2934 Added test_value () function (known not to pass at the moment, so
2935 not actually called yet.
2937 2001-12-08 Michael Meeks <michael@ximian.com>
2939 * at-bridge/bridge.c (bridge_focus_tracker),
2940 (emit_eventv): fix the same ref. leak.
2941 (register_atk_event_listeners): don't leak.
2943 * cspi/spi-listener-impl.c (cspi_event): more
2944 protection from client code.
2946 * test/test-simple.c (test_desktop): unref the app.
2948 * test/Makefile.am: upd. TESTS.
2950 * at-bridge/bridge.c (bridge_exit_func): release the registry.
2952 * test/keysynth-demo.c (keysynth_exit): unref the listeners.
2954 * cspi/spi_accessible.c (Accessible_queryInterface): constify.
2956 * cspi/spi_registry.c: constify in strings.
2957 (deregisterGlobalEventListenerAll): don't release the ref.
2959 * cspi/spi.h: start removing redundant / conflicting
2960 gtkdoc comments, making the API readable at a glance :-)
2962 * cspi/spi_event.c (AccessibleEventListener_unref): impl.
2964 * test/keysynth-demo.c (keysynth_exit, main): upd.
2966 * test/simple-at.c (main, simple_at_exit): upd.
2968 * test/test-simple.c (unutterable_horror): kill.
2969 (utterable_normal_derefs): kill.
2970 (main): upd & do a setenv before gtk_init, so that we
2971 can use memprof - and to save the pain of remembering
2972 this, if we're running under memprof - don't exit.
2974 * cspi/spi_main.c (SPI_exit): return exit status
2976 (SPI_event_quit): impl.
2977 (SPI_event_main): simplify.
2978 (cspi_is_gnome_app): kill.
2979 (SPI_init): kill isGNOMEapp arg.
2981 * at-bridge/bridge.c (register_atk_event_listeners):
2982 re-instate the unref.
2983 (bridge_exit_func): don't re-activate the registry,
2984 protect vs. theoretical re-entry, use the
2985 AT_BRIDGE_SHUTDOWN env. var to determine whether to
2986 assert a clean shutdown - for regression tests.
2988 2001-12-08 Abel Cheung <maddog@linux.org.hk>
2990 * configure.in: Comment out dummy i18n support for now,
2991 otherwise it fails to build.
2992 * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
2993 EXTRA_DIST. They are missing in tarball.
2995 2001-12-07 Michael Meeks <michael@ximian.com>
2997 * util/magnifier.c: kill bonobo activation reg. race.
2999 * libspi/component.c
3000 (impl_accessibility_component_get_extents): make it match
3003 * libspi/registry.c (_registry_notify_listeners):
3004 re-remove X headers & reconcile conflicts.
3005 (spi_listener_struct_free): bad conflict resolve.
3006 (impl_accessibility_registry_register_application):
3007 more bad merging fixed.
3008 (impl_accessibility_registry_deregister_application): ditto.
3009 (spi_registry_new): ditto.
3010 (spi_registry_init): don't have an applications field.
3012 [ merge fixups2 branch to here ]
3013 2001-12-07 Michael Meeks <michael@ximian.com>
3015 * test/simple-at.c (report_focus_event),
3016 (report_focussed_accessible): remove g_warning debug.
3018 2001-12-07 Michael Meeks <michael@ximian.com>
3020 * test/test-simple.c (validate_tree): comment out some checks.
3021 (test_desktop): app now not registered idly - horay.
3023 2001-12-07 Michael Meeks <michael@ximian.com>
3025 * cspi/spi_registry.c
3026 (registerAccessibleKeystrokeListener): clean, stop it leaking
3027 great swathes of memory, and device event controller references.
3028 ensure we always pass valid sequences.
3029 (deregisterAccessibleKeystrokeListener): ditto.
3030 (generateKeyEvent): upd.
3032 * at-bridge/bridge.c (bridge_key_listener): handle
3033 registry dead exception gracefully.
3034 (bridge_focus_tracker, emit_eventv): free ev.
3036 * test/simple-at.c (report_focus_event): fix polarity.
3038 * libspi/application.c (notify_listeners): kill the ev
3039 argument, and make sure we init the ev we use.
3040 (spi_application_object_event_listener): split out a chunk
3041 (get_atk_object_ref): here & fixup.
3042 (reverse_lookup_name_for_toolkit_event): make const.
3043 (spi_application_toolkit_event_listener): fixup, kill leaks
3046 * at-bridge/bridge.c (register_atk_event_listeners):
3047 don't unref the noop object - causes grief.
3049 * libspi/registry.c: remove the X headers.
3050 turn off the debug churn.
3052 * libspi/accessible.c (spi_accessible_new_return): only
3053 release the ref if we are supposed to [doh]
3055 * test/simple-at.c (report_button_press, report_focus_event):
3056 guard vs. unexpected exit.
3058 * at-bridge/bridge.c (gtk_module_init): prune printf.
3059 (bridge_exit_func): fix app unref.
3061 * libspi/Makefile.am: don't install registry or desktop.h
3063 * libspi/*.h: update includes.
3065 * libspi/application.h: don't include ourself, or
3066 other redundant headers.
3068 2001-12-06 Michael Meeks <michael@ximian.com>
3070 * libspi/accessible.c
3071 (get_accessible_from_servant): impl.
3072 Upd. all CORBA impl.s to use it killing cut and paste.
3074 * cspi/spi_main.c (cspi_cleanup): guard vs. double
3076 (SPI_init): register atexit cleanup handler here.
3078 2001-12-06 Michael Meeks <michael@ximian.com>
3080 * at-bridge/bridge.c (gtk_module_init): g_error on
3081 activation exception
3083 2001-12-06 Michael Meeks <michael@ximian.com>
3085 * at-bridge/bridge.c (gtk_module_init): some sort of
3086 confusing merge clash - reverted.
3087 (bridge_idle_init): ditto.
3089 * test/test-simple.c (main, utterable_normal_derefs):
3090 merge from Bill - somehow not committed.
3092 2001-12-06 Michael Meeks <michael@ximian.com>
3094 * libspi/value.c (spi_value_class_init): upd.
3095 (spi_value_finalize): kill.
3097 * libspi/table.c (spi_table_finalize): kill.
3098 (spi_table_interface_new): upd.
3099 (spi_table_class_init): upd.
3100 (get_table_from_servant): impl.
3101 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3103 * libspi/selection.c (spi_selection_finalize): kill.
3104 (spi_selection_interface_new): upd.
3105 (spi_selection_class_init): upd.
3106 (get_selection_from_servant): impl.
3107 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3109 * libspi/relation.c (spi_relation_finalize): kill.
3110 (spi_relation_class_init, spi_relation_new): upd
3112 * libspi/image.c (spi_image_finalize): kill.
3113 (spi_image_class_init): upd.
3114 (spi_image_interface_new): upd.
3115 (get_image_from_servant): impl.
3116 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3118 * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3119 (spi_hyperlink_finalize): kill.
3120 (spi_hyperlink_new): upd.
3121 (get_hyperlink_from_servant): impl.
3122 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3124 * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3125 (spi_hypertext_finalize): kill.
3126 (spi_hypertext_class_init): upd.
3127 (get_hypertext_from_servant): impl.
3128 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3130 * libspi/editabletext.c (spi_editable_text_finalize): kill.
3131 (spi_editable_text_interface_new): upd.
3132 (get_editable_text_from_servant): impl.
3133 Upd. all CORBA impl.s to use it killing yet more cut and paste.
3135 * libspi/text.c (get_text_from_servant): impl.
3136 All impls - update to use it killing more cut and paste,
3137 also fix bad string returns on duff args ( a somewhat
3138 impossible case to handle - but hey ).
3139 (spi_text_construct): impl.
3140 (spi_text_interface_new): upd.
3141 (spi_text_object_finalize): kill.
3143 * libspi/component.c
3144 (accessibility_component_object_finalize): kill.
3145 (spi_component_class_init): upd.
3146 (get_component_from_servant): impl. helper to kill cut & paste.
3147 (impl_accessibility_component_contains):
3148 (impl_accessibility_component_get_accessible_at_point):
3149 (impl_accessibility_component_get_position):
3150 (impl_accessibility_component_get_extents):
3151 (impl_accessibility_component_get_mdi_z_order):
3152 (impl_accessibility_component_get_layer):
3153 (spi_component_interface_new): upd.
3155 * libspi/action.c (spi_action_finalize): kill.
3156 (spi_action_class_init): upd. inherit from SpiObject.
3157 (spi_action_interface_new): upd.
3158 (get_action_from_servant): impl. helper to reduce cut & paste.
3159 (impl_getKeyBinding, impl_getName, impl_doAction),
3160 (impl_getDescription): Use it everywhere.
3162 * cspi/spi_main.c (get_live_refs): a pointer hash.
3163 (spi_object_hash, spi_object_equal): comment out.
3164 There are issues with CORBA object hashing that need
3167 * libspi/application.c (spi_application_init),
3168 (spi_application_new): upd.
3170 * libspi/accessible.c (spi_accessible_object_finalize): kill.
3171 (spi_accessible_class_init): upd.
3172 s/accessible/object/ in epv methods.
3174 2001-12-05 Bill Haneman <bill.haneman@sun.com>
3176 * at-bridge/bridge.c:
3177 Reorder the bridge initialization into the bridge gtk_module_init,
3178 an immediate call to bridge_register_app, and an idle_add for
3179 register_atk_event_listeners (the only code that *must* wait until
3180 GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
3181 the activation, creates the application's Accessible object, and
3182 queues the bridge_idle_init function. Restored call to
3183 Accessibility_Registry_deregisterApplication().
3184 Prior to making this call we obtain a new reference to the
3185 registry, which is a temporary hack that helps us handle apps that
3186 shut down the bonobo mainloop before we get there.
3188 * libspi/registry.c:
3189 Fix string leakage in debug block, and don't segv if a an app
3190 dies before its event notifications have been propagated.
3193 Modify cspi_check_ev() to call g_warning() rather than g_error(),
3194 as stopgap measure until we get proper exception handling when
3195 objects die during or before interrogation.
3199 Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
3200 Also changed default value of is_gnome_app to TRUE.
3203 * test/keysynth-demo.c:
3204 Changed use of SPI_init and SPI_event_main to reflect API change above.
3207 Made report_focus_event check the warning value from getName
3208 before reporting on focussed accessible; simplifies handling of
3209 notifications from dead objects.
3211 * test/test-simple.c: (Changes not in this patch since source is
3214 2001-12-05 Michael Meeks <michael@ximian.com>
3216 * registryd/registryd.c (main): protect against
3217 bonobo-activation startup race condition.
3219 * cspi/spi_main.c (cspi_object_add_check): cope
3220 with the exception elegantly.
3222 * idl/Accessible.idl: decl. ChildGone
3224 * libspi/desktop.c (spi_desktop_dispose): impl.
3225 (spi_desktop_class_init): upd.
3226 (spi_desktop_add_application),
3227 (spi_desktop_remove_application),
3228 (abnormal_application_termination): impl.
3229 (impl_desktop_get_child_at_index): re-impl.
3232 (impl_accessibility_registry_deregister_application),
3233 (impl_accessibility_registry_register_application):
3234 kill excessive debug clutter.
3236 * test/test-simple.c (test_misc): test some NULL
3237 tolerance. (main): upd.
3239 * cspi/spi_main.c (cspi_accessible_is_a): a NULL
3240 implements no interfaces - so let's not crash.
3242 * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
3244 * libspi/accessible.c (spi_accessible_new_return): impl.
3245 helper to calm the cut and paste, to cope with
3246 NULL AtkObjects effectively and efficiently, and to kill
3247 the referencing bugs.
3249 * libspi/table.c (impl_getAccessibleAt),
3250 (impl_getRowHeader, impl_getColumnHeader): upd.
3252 * libspi/hyperlink.c (impl_getObject): upd.
3254 * libspi/accessible.c
3255 (impl_accessibility_accessible_get_child_at_index): upd.
3257 * libspi/component.c
3258 (impl_accessibility_component_get_accessible_at_point): upd.
3260 * test/test-simple.c (test_editable_text, test_text): impl.
3263 * cspi/spi_editabletext.c
3264 (AccessibleEditableText_insertText): constify.
3266 * test/test-simple.c (focus_me): make more robust.
3268 * libspi/accessible.c: remove some printfs in methods that
3269 we test and work fine, so we can get a clean tree dump.
3271 * test/test-simple.c (validate_accessible),
3272 (validate_tree): make tree dumping pretty too.
3274 * at-bridge/bridge.c (bridge_signal_listener): upd. so
3275 it builds without debug on.
3277 * test/test-simple.c (validate_accessible): fix the most
3280 * cspi/spi_main.c (spi_object_release): leave the nicely
3281 blanked memory around if in debug mode.
3283 * cspi/spi-listener-impl.c (cspi_event): use add_check.
3285 [committed to fixups2]
3286 2001-12-05 Michael Meeks <michael@ximian.com>
3288 * libspi/editabletext.c
3289 (spi_editable_text_class_init): g_type_class_peek_parent,
3290 not interface peek - so we finalize cleanly.
3292 * libspi/accessible.c (spi_accessible_new): kill debug.
3294 * test/test-simple.c (validate_accessible): fix ref.
3295 leak, print strings before freeing them; sigh, comment a
3296 chunk out due to strangeness.
3297 (validate_tree): unref the child after use.
3299 * cspi/spi_component.c (AccessibleComponent_getLayer):
3300 add missing break statement, switch on zlayer not the
3301 uninitialized retval.
3303 * cspi/spi_main.c (cspi_object_add): add assert, local ref
3304 before (possibly re-entering) remote unref.
3306 * test/simple-at.c (main): unref the desktop.
3308 * cspi/spi_accessible.c (cspi_accessible_is_a): move
3311 * cspi/spi_main.c (cspi_accessible_is_a): here to
3312 isolate bonobo API usage more.
3314 * libspi/registry.c (impl_accessibility_registry_register_application):
3315 prune bogus comment.
3317 2001-12-04 Michael Meeks <michael@ximian.com>
3319 * test/test-simple.c (validate_tree): upd.
3320 IndexInParent check to make it more lucid.
3321 (validate_accessible): dump the tree.
3323 * libspi/accessible.c (de_register_public_ref),
3324 (get_public_refs): impl.
3325 (spi_accessible_new): make more efficient & intuitive.
3326 Now IndexInParent check works.
3328 2001-12-04 Michael Meeks <michael@ximian.com>
3330 * cspi/spi-util.h: remove.
3332 * cspi/spi.h: move SPI_freeString here
3334 * libspi/component.c (impl_accessibility_component_get_layer):
3336 (impl_accessibility_component_get_mdi_z_order): ditto,
3337 return -1 on error - is this ok ?
3339 * test/test-simple.c (test_application): impl.
3341 * cspi/spi_accessible.c (Accessible_getApplication),
3342 (Accessible_isApplication): impl.
3344 * libspi/registry.c (spi_listener_struct_free): release
3345 the CORBA reference too.
3347 * libspi/accessible.c
3348 (impl_accessibility_accessible_get_parent): fix ref leak.
3350 * libspi/registry.c (spi_registry_new): make the registry
3351 immortal - we don't want it to go away ever.
3353 * libspi/application.c
3354 (spi_accessible_application_finalize): impl. cleanup.
3356 * cspi/spi_registry.c
3357 (deregisterGlobalEventListenerAll),
3358 (deregisterGlobalEventListener),
3359 (deregisterAccessibleKeystrokeListener): fix ref leak.
3361 * cspi/spi_main.c (SPI_init): remove redundant ref.
3363 * test/test-simple.c (unutterable_horror): impl. to force a
3368 (impl_accessibility_registry_deregister_application): release
3369 the application when we de-register it.
3371 * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
3372 until we have the infastructure to get it right.
3374 2001-12-03 Michael Meeks <michael@ximian.com>
3376 * libspi/Makefile.am: only build eventlistener.[ch]
3378 * libspi/accessible.c
3379 (impl_accessibility_accessible_get_child_at_index): don't leak.
3381 * at-bridge/bridge.c (bridge_exit_func): cope with an exit
3382 before we hit the idle handler.
3384 * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
3385 debugging than exit.
3387 * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
3389 * libspi/listener.c (impl_notify_event): check source
3390 not NIL before unref.
3392 * libspi/registry.c (impl_registry_notify_event): ditto.
3394 * libspi/eventlistener.c
3395 (impl_accessible_event_notify_event): unref the source.
3397 * libspi/accessibleeventlistener.c
3398 (impl_accessible_event_notify_event): unref the source.
3400 * idl/Event.idl: remove 'hash_id' attribute - of no
3403 * libspi/application.c (notify_listeners): upd list
3405 (spi_application_object_event_listener),
3406 (spi_application_toolkit_event_listener): upd to do correct
3410 (_registry_notify_listeners): update.
3411 (parse_event_type): this method also leaks like a sieve.
3412 (impl_accessibility_registry_deregister_global_event_listener):
3413 fix ETYPE_WINDOW case.
3415 * libspi/application.c
3416 (impl_accessibility_application_register_object_event_listener):
3419 * libspi/hyperlink.c (impl_getObject): fix ref mistake.
3421 * libspi/hypertext.c (impl_getLink): ditto.
3423 * cspi/spi_main.c (cspi_object_add): remove
3424 bogus CORBA_Object_duplicate.
3426 * cspi/spi-listener-impl.c (cspi_event): dup/ref
3429 * cspi/spi_accessible.c
3430 (Accessible_getRelationSet): fix leak / referencing issue.
3432 * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
3433 (cspi_object_add, cspi_object_unref): upd.
3434 (spi_object_release, get_live_refs): impl.
3435 (cspi_cleanup): simplify.
3437 * *.[ch]: s/boolean/SpiBoolean/
3439 * cspi/spi_accessible.c (role_names): actualy order so it
3440 corresponds with the enum !
3442 * test/test-simple.c (test_roles): check some role strings
3443 vs. enums to detect offset errors.
3445 2001-12-01 Michael Meeks <michael@ximian.com>
3447 * cspi/spi_main.c (cspi_object_add_check): impl. helper.
3449 * cspi/spi_accessible.c (Accessible_getChildAtIndex):
3451 (Accessible_getChildAtIndex): use cspi_add_check so we
3452 check the ev before using a (possibly) invalid value.
3454 * libspi/accessible.c
3455 (impl_accessibility_accessible_get_parent): don't segv
3458 * at-bridge/bridge.c (gtk_module_init): upd.
3459 (bridge_property_event_listener): don't leak strings
3461 (bridge_state_event_listener),
3462 (bridge_property_event_listener): don't use a static
3463 buffer in case of recursive event emission &
3464 re-enterancy - split out the swathe of cut and paste
3466 (emit_eventv): and fix 2 ref leaks here & comply to the
3468 (bridge_register_app): rename to
3469 (bridge_idle_init): this and kill arg parsing, split
3470 various inits & bonobo-activation registration to module
3471 init time, kill referencing error.
3472 (bridge_exit_func): fix the same leak.
3473 (bridge_focus_tracker): don't leak event structures
3475 (bridge_signal_listener): more leakage and cut & paste
3477 (bridge_key_listener): return the result - FIXME is
3478 this polarity correct ?
3479 (accessibility_keystroke_from_atk_key_event): rename
3480 (accessibility_init_keystroke_from_atk_key_event): and stop
3482 (gtk_module_init): return a value - not that it is checked by
3484 (bridge_key_listener): register my horror at casting between
3485 IDL defined structs.
3486 (bridge_get_registry): kill - not used.
3488 * cspi/spi_accessible.c (Accessible_getRole): make return const.
3490 * test/test-simple.c (test_roles): impl.
3491 (test_desktop, validate_accessible, validate_tree): impl.
3493 * cspi/spi_accessible.c (role_names): fixup bogus
3494 MAX_ROLES setup, make constants const for efficient linkage
3495 (AccessibleRole_getName): conform to coding style, make
3498 2001-11-30 Michael Meeks <michael@ximian.com>
3500 * cspi/spi.h: add missing prototype.
3502 * libspi/registry.c (spi_listener_struct_new): fix sig.
3504 * test/Makefile.am: add test-simple
3506 * test/test-simple.c: add
3508 * test/test.sh: add.
3510 * cspi/spi_main.c (SPI_init): make SPI_inited module global,
3512 * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
3513 do it straight - since otherwise we often get an activation race.
3515 [ work before Bill duplicated a chunk of it ... ]
3516 2001-11-30 Michael Meeks <michael@ximian.com>
3518 * libspi/keystrokelistener.c
3519 (spi_keystroke_listener_class_init): fixup arg
3522 * libspi/eventlistener.c
3523 (spi_event_listener_class_init): ditto.
3525 * tests/test.sh: add.
3527 * cspi/spi-listener-impl.h: update macros.
3529 * cspi/spi-listener-impl.c
3530 (cspi_event_listener_remove_callback): add
3531 correct pre-conditions.
3533 * cspi/spi_main.c (SPI_exit): guard vs. double
3534 exits, exit the mainloop nicely.
3535 (SPI_event_main): make more sense.
3536 (SPI_init): move the atexit evilness here so we
3537 always do it (yuck).
3538 (SPI_event_main): upd.
3540 * test/simple-at.c: update for listener changes.
3542 * registryd/registryd.c (main): prune kruft.
3544 * libspi/libspi.h: upd.
3546 * libspi/eventlistener.[ch]: rename broken macros.
3548 * libspi/accessibleeventlistener.[ch]: remove.
3550 * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
3552 * test/test-simple.c: Add - automated tests.
3554 * cspi/spi-listener-impl.c (cspi_event),
3555 (cspi_key_event): add user_data to invoke.
3556 (cspi_keystroke_listener_finalize): impl.
3557 (cspi_keystroke_listener_class_init): upd.
3560 (createAccessibleEventListener),
3561 (AccessibleEventListener_addCallback),
3562 (createAccessibleKeystrokeListener),
3563 (AccessibleKeystrokeListener_addCallback): upd.
3565 * libspi/deviceeventcontroller.c
3566 (spi_device_event_controller_check_key_event): add public proto.
3569 (impl_accessibility_registry_deregister_global_event_listener):
3570 always init listeners.
3571 (_registry_notify_listeners): yes it is.
3573 * cspi/spi-listener-impl.c (cspi_key_event):
3575 (cspi_event_listener_finalize): impl.
3576 (cspi_event_listener_class_init): hook up.
3577 (event_handler_new, event_handler_free),
3578 (event_list_remove_by_callback): impl.
3579 (cspi_event_listener_remove_callback),
3580 (cspi_keystroke_listener_remove_callback),
3581 (cspi_keystroke_listener_add_callback),
3582 (cspi_event_listener_add_callback): upd.
3584 * libspi/keystrokelistener.c
3585 (keystroke_listener_object_finalize): kill
3586 (spi_keystroke_listener_class_init): upd.
3587 (spi_keystroke_listener_add_callback),
3588 (spi_keystroke_listener_remove_callback): kill,
3590 (impl_key_event): prune drasticaly.
3592 * libspi/eventlistener.c
3593 (spi_event_listener_add_callback),
3594 (spi_event_listener_remove_callback): kill, use
3596 (impl_accessible_event_notify_event): upd.
3597 (spi_event_listener_object_finalize): remove.
3599 * libspi/Makefile.am: use eventlistener.[ch]
3601 2001-12-04 Bill Haneman <bill.haneman@sun.com>
3603 * libspi/registry.c (_registry_notify_listeners):
3604 Changed listener loop iteration to use preferred convention.
3605 Got rid of string memory leaks caused be calling g_strconcat
3606 inside function calls.
3608 * libspi/registry.c (parse_event_type):
3609 Stopped g_strconcat memory leaks, free the g_strsplit return,
3610 g_strdup the split pieces when used, etc.
3612 2001-12-04 Bill Haneman <bill.haneman@sun.com>
3615 Change method 'compare' to return a 'difference set' rather than
3616 taking a StateSet as an out parameter (more Java-friendly).
3618 * idl/Accessible.idl:
3619 Added CORBA struct 'BoundingBox', to faciliate API changes below:
3621 * idl/Component.idl:
3623 Changed methods 'getExtents' and 'getImageExtents' in these
3624 interfaces to return a BoundingBox structure.
3625 (getPosition and getSize are redundant and possibly should be
3626 removed, rather than creating a corresponding Point struct.)
3628 * cspi/spi_component.c:
3629 Modify implementation of getExtents to reflect the above IDL
3634 Add (missing) AccessibleImage_getExtents () API.
3636 * docs/reference/cspi/at-spi-cspi-sections.txt:
3637 Added AccessibleImage_getImageExtents () to docs.
3639 2001-12-03 Bill Haneman <bill.haneman@sun.com>
3641 * idl/Component.idl:
3642 Added two methods, getLayer () and getMDIZOrder (), to reflect
3643 the new ATK methods atk_object_get_layer and
3644 atk_object_get_mdi_z_order. (Which arguably should be part of the
3645 AtkComponent API and AtkObject). Also added an enum,
3646 ComponentLayer, for the first method's return value.
3648 * libspi/component.c:
3649 Added implementations for these methods.
3651 * cspi/spi_component.c:
3653 Added cspi binding methods for above,
3654 AccessibleComponent_getLayer() and
3655 AccessibleComponent_getMDIZOrder().
3656 Added cspi enum 'AccessibleComponentLayer'.
3658 * docs/reference/cspi/at-spi-cspi-sections.txt:
3659 Added above methods to docs.
3663 Changed typedef for 'boolean' type (and all references to it) to
3664 SPIBoolean, to avoid keyword clashes with C++.
3667 Changed usages of 'boolean' to SPIBoolean.
3669 * test/keysynth-demo.c:
3670 Changed usages of 'boolean' to 'gboolean' (since this is a gnome
3671 app), except where SPIBoolean is required by the callbacks API.
3673 2001-12-02 Bill Haneman <bill.haneman@sun.com>
3675 * cspi/spi_registry.c:
3676 Removed obsolete X event loop for passive keygrabs (which now
3679 * registryd/registryd.c:
3680 Removed unnecessary call to gdk_init() [cruft]. This also allows
3681 removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
3684 2001-11-28 Bill Haneman <bill.haneman@sun.com>
3686 * docs/reference/cspi:
3687 Included docs for SPI_freeString in generated documentation.
3690 Renamed spi_freeString to SPI_freeString, for consistency. Added
3691 documentation for this function.
3694 Renamed spi_freeString to SPI_freeString, for consistency.
3695 Removed obsolete method declaration string_from_corba_string.
3697 * test/keysynth-demo.c:
3698 Small tweak to comments.
3701 Stopped leaking the strings returned from CSPI.
3703 2001-11-28 Bill Haneman <bill.haneman@sun.com>
3705 Merged Michael's branch (see his ChangeLog entries below).
3707 * at-bridge/bridge.c: Explicitly hold a ref to the registry while
3708 bridge is alive, release on exit.
3710 * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
3711 Fix type check macro.
3714 Added AccessibleKeystrokeListener_unref() method to reduce leakage.
3717 Added is_gnome_app static, and method cspi_is_gnome_app(),
3718 so we can call the appropriate shutdown routine at exit in SPI_exit.
3720 * cspi/spi_main.c (cspi_object_ref):
3721 Duplicate the corba object passed in, since we're keeping it around.
3723 * cspi/SPI_exit.c, cspi_cleanup:
3724 Moved the releasing of the live refs to its own function, so we
3725 can put it in g_atexit (). Call the appropriate shutdown API
3726 depending on whethe calling client is a gnome app or not
3727 (bonobo_main_quit or CORBA_ORB_shutdown).
3729 * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
3730 Unref the listener when this method is called, after
3731 deregistration. Updated the API docs to note this behavior.
3733 * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
3734 Bugfixes: Ref the bonobo object when returning a parent or child
3735 reference, or an AccessibleRelation. Generally made sure
3736 BonoboObject refcount is incremented whenever we return an
3739 * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
3740 Fixed typo/bug in signal declaration.
3742 * libspi/accessibleeventlistener.h:
3745 * libspi/application.c (spi_application_new):
3746 Fixed leak in initialization.
3749 Remembered to increment bonobo-object refcount when returning
3750 children (applications) from desktop object.
3751 Added (empty) finalize method.
3753 * libspi/deviceeventcontroller.c:
3754 Hold a ref to listeners inside DEControllerKeyListeners.
3755 Added dec_key_listener_free() method. Use prepend instead of
3756 append in key_listener list. Fixed some refcount madness and
3757 leaks in the listener registration/deregistration - deregistration
3758 now calls dec_key_listener_free() on listeners, and on the
3759 temporarily constructed dec_key_listener() used to perform the search/match.
3761 * libspi/hypertext.c (spi_hypertest_finalize):
3762 Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
3763 class. Also fixed spi_hypertext_interface_new() and
3764 SpiHypertextClass. Fixed a couple of paren-whitespace formatting bugs.
3766 * libspi/hypertext.h:
3767 Removed pointless and duplicate AtkObject pointer from
3770 * libspi/keystrokelistener.c:
3771 Fixed incorrect type of keystroke_listener_parent_class,
3772 renamed keystroke_listener_object_finalize to
3773 spi_keystroke_listener_object_finalize.
3774 Fixed typo in signal declaration
3775 (spi_keystroke_listener_class_init).
3777 * libspi/registry.c:
3778 Added funcsions spi_listener_struct_new() and
3779 spi_listener_struct_free() to help with memory management issues.
3780 We also now use these methods instead of gnew + poking stuff into
3781 the struct, and to decrement listener counts/free the listeners
3782 when deregistering them.
3783 Fix more refcount bugs in getDesktop() and
3784 getDeviceEventController().
3787 De-ref the desktop after enumerating the applications. Explicitly
3788 decrement the refcounts on the created listeners on exit (using
3789 _unref for keystroke listeners, and via the
3790 deregisterGlobalEventListenerAll command for other event
3793 2001-11-27 Michael Meeks <michael@ximian.com>
3795 * cspi/spi-listener.h: fixup enum.
3797 2001-11-27 Michael Meeks <michael@ximian.com>
3799 * cspi/spi-listener-impl.c (cspi_event_listener_new),
3800 (cspi_keystroke_listener_new): Use the cspi variants.
3802 2001-11-26 Michael Meeks <michael@ximian.com>
3804 * test/keysynth-demo.c: fix 2 compile warnings, missing
3807 * test/simple-at.c (report_focussed_accessible),
3808 (report_focus_event, report_button_press),
3809 (check_property_change, is_command_key),
3810 (report_ordinary_key_event, report_command_key_event): upd.
3812 * util/mag_client.h: include pre-requisites.
3814 * libspi/accessibleeventlistener.c
3815 (spi_event_listener_object_finalize): free any lingering
3818 * libspi/keystrokelistener.c
3819 (keystroke_listener_object_finalize): ditto.
3821 * cspi/spi-listener-impl.[ch]: Add to implement cspi style
3822 callbacks, with cspi types.
3824 * cspi/spi_event.c (createAccessibleEventListener): chain to
3825 (AccessibleEventListener_addCallback): here.
3826 (createAccessibleKeystrokeListener): chain to
3827 (AccessibleKeystrokeListener_addCallback): here.
3829 * libspi/keystrokelistener.c
3830 (spi_keystroke_listener_class_init): add signal.
3831 (impl_key_event): emit the event.
3832 (boolean_handled_accumulator): impl.
3833 (marshal_BOOLEAN__POINTER): add, gack.
3835 * libspi/accessibleeventlistener.c
3836 (spi_event_listener_class_init): add signal.
3837 (impl_accessible_event_notify_event): emit the signal &
3838 make the loop efficient.
3839 (spi_event_listener_add_callback): prepend the callback.
3841 * libspi/accessibleeventlistener.h: add an 'event' signal,
3842 decl type on callback.
3844 * libspi/keystrokelistener.h: ditto.
3846 * cspi/spi-listener.h: make methods typesafe and
3847 make them use the new event typedefs.
3849 * test/simple-at.c (report_focussed_accessible):
3850 include mag_client.h
3851 Use *(void *)text_interface not the other thing.
3853 * configure.in: add gtk to registryd bits - since we use
3856 * util/magnifier.c: include libbonobo.h
3858 2001-11-25 Bill Haneman <bill.haneman@sun.com>
3860 * test/keysynth-demo.c:
3861 Turned this into a simple scanning keyboard, to demonstrate the
3862 use of g_timeout_add () as a means of creating timers for
3863 scanning, and the use of GtkStyle for visually indicating when
3864 virtual keyboard elements are selected.
3866 keysynth-demo now listens to any keyboard keys with zero-valued
3867 keycodes (i.e. 'unused' keys) and interprets them as
3870 Reworked the shiftlatch code so that shift-down state isn't held
3871 for long periods (it's only synthesized immediately prior to
3872 the keysynth event it's modifying). Note that shiftlatch in this
3873 demo is a convenience, not intended to take the place of AccessX
3874 which is the better choice for getting 'sticky' modifier keys.
3876 * libspi/deviceeventcontroller.c:
3877 * at-bridge/bridge.c:
3878 * cspi/spi_registry.c:
3879 Removed some debug print stuff, and put other verbosity in #ifdef
3884 Implemented some more of the magnifier IDL for the simple
3885 magnifier: namely, getZoomRegionParams.
3886 Added mag_x and mag_y members to MagnifierData struct, aid of this
3888 Added GtkWindow::realize signal handler to magnifier, to keep it
3889 from receiving keyboard focus from the WM.
3891 2001-11-23 Mark McLoughlin <mark@skynet.ie>
3893 * cspi/spi-private.h: my guess at what michael forgot
3894 before he ran off to NZ :-)
3896 2001-11-23 Michael Meeks <michael@ximian.com>
3898 * cspi/spi_event.c (AccessibleEventListener_removeCallback):
3899 comment out non existant method invoke so we link.
3901 * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
3902 use bonobo_exception_get_text for more friendly warnings.
3904 * cspi/spi.c (Obj_Add): move into spi_main & rename
3905 spi_object_add; kill spi.c
3907 * cspi/spi_registry.c
3908 (deregisterGlobalEventListener),
3909 (deregisterGlobalEventListenerAll),
3910 (registerGlobalEventListener): fix exception leaks.
3912 * cspi/spi_main.c (spi_exception): impl. helper, so we
3913 don't leak exceptions.
3915 * cspi/spi_selection.c
3916 (AccessibleSelection_deselectSelectedChild): return the
3919 * cspi/spi_main.c (spi_ev): impl; hack - gack.
3920 (spi_registry): ditto.
3921 (SPI_init): guard against double inits.
3923 * cspi/*.c: use spi_ev (), and spi_registry () where
3924 appropriate - a temporary hack until we have something
3925 better. Use spi_object_add
3927 2001-11-22 Michael Meeks <michael@ximian.com>
3929 * cspi/Makefile.am: re organise, install the headers.
3931 * cspi/*.h: add G_BEGIN/END_DECLS
3933 2001-11-22 Bill Haneman <bill.haneman@sun.com>
3936 Added non-preemptive keylistener for key events with no modifiers
3937 and shift-only modifier.
3939 * libspi/keystrokelistener.c:
3940 Removed some verbose diagnostics printout.
3942 * cspi/spi_registry.c:
3943 Fixed a bug that caused all key listeners to be registered as
3946 * libspi/deviceeventcontroller.c:
3947 Fixed bug that caused XGrabKey (preemptive key grab) to be called
3948 for non-preemptive key masks.
3951 2001-11-22 Bill Haneman <bill.haneman@sun.com>
3953 * docs/reference/idl/at-spi-idl-docs.sgml:
3954 * docs/reference/idl/at-spi-idl-sections.txt:
3955 * docs/reference/idl/at-spi-idl-overrides.txt:
3956 Added missing files.
3958 * docs/reference/Makefile.am:
3959 removed idl from SUBDIRS until we can figure a way to get gtk-doc
3960 to scan the IDL files :-(
3965 Added .cvsignore files.
3967 2001-11-21 Bill Haneman <bill.haneman@sun.com>
3969 * libspi/deviceeventcontroller.c:
3970 * libspi/keystrokelistener.c:
3972 * cspi/spi_registry.c:
3973 Added filters for KeySets, KeyEventSeq, and event types to key
3974 event dispatching, so listeners should only receive those events
3975 that they requested :-)
3977 2001-11-21 Bill Haneman <bill.haneman@sun.com>
3982 * docs/reference:Makefile.am:
3983 * docs/reference/cspi:
3984 * docs/reference/cspi:Makefile.am:
3985 * docs/reference/cspi:tmpl:
3986 * docs/reference/cspi:tmpl:*.sgml:
3987 * docs/reference/idl:
3988 * docs/reference/idl:Makefile.am:
3989 * docs/reference/idl:at-spi-idl-sections.txt:
3990 * docs/reference/idl:at-spi-idl-docs.sgml:
3991 * docs/reference/idl:tmpl:
3992 * docs/reference/idl:tmpl:*.sgml:
3994 Restructured docs directory to allow separate 'reference' docs
3995 section, and forked idl and cspi docs. Added the sgml template
3996 files to CVS. Added the first sections/structural sgml for the
3999 2001-11-21 Laszlo Peter <laca@ireland.sun.com>
4001 * configure.in, libspi/Makefile.am: find libXtst.
4003 2001-11-21 Michael Meeks <michael@ximian.com>
4005 * test/accessx-gui.c: s/spi_value/value/ - doh.
4007 * libspi/base.[ch]: add.
4009 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4011 * idl/Accessible.idl:
4012 * idl/Application.idl:
4015 Started gtk-doc cleanup on IDL.
4017 * libspi/deviceeventcontroller.c:
4018 Added and connected non-preemptive key notification from the
4019 toolkits (in addition to the pre-emptive support from XServer
4020 which we had before, but which causes 'focus flashing'). Filters
4021 are presently limited to key modifiers and global/non-global,
4022 KeySets are presently ignored, as are KeyEvent masks.
4024 Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4025 structs into the persistant structure rather than just storing
4026 pointers to things that might not persist across servant
4029 The XGrabKey call now does async keygrabs, because synchronous
4030 ones were deadlocking with GDK_event code in a very nasty way.
4032 Added boolean to internal method notify_keylisteners, to indicate
4033 whether the event came from the 'toolkit source' or the 'global
4034 (XServer) source' - this is used in the notification process to
4035 determine which listeners to send the event to.
4037 deviceeventcontroller.c is now warning-free.
4039 * libspi/registry.c:
4040 Fixed regression in application de-registration.
4041 Also fixed some really brain-dead weirdness having to do with
4042 event dispatching - event structs are now duplicated before being
4043 re-marshalled in the dispatch to listeners. This also fixes a
4044 Solaris build problem.
4047 2001-11-20 Michael Meeks <michael@ximian.com>
4050 (impl_accessibility_registry_deregister_global_event_listener):
4053 * libspi/deviceeventcontroller.c
4054 (spi_device_event_controller_check_key_event): return
4055 FALSE on no virtual method.
4057 * libspi/*..h: make includes work on a correctly pathed install.
4059 * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4061 * libspi/application.h: kill unused ( and whacked out )
4062 gboolean *spi_application_set_id (AtkObject *app, long id);
4064 2001-11-20 Michael Meeks <michael@ximian.com>
4066 * libspi/*.[ch]: further convert to bonobo's type func
4067 macros, remove redundnant casts etc.
4069 * libspi/text.c s/accessibility_text/spi_text/g,
4070 re-order to de-cruft.
4072 * libspi/hypertext.c: re-order to kill a huge slew
4073 of redundant forward decls.
4075 * libspi/relation.c: ditto.
4077 * libspi/image.c: ditto.
4079 * */.cvsignore: update
4081 2001-11-20 Michael Meeks <michael@ximian.com>
4083 * libspi/deviceeventcontroller.c
4084 (_controller_register_with_devices): use g_getenv,
4085 kill stdlib.h include.
4087 * libspi/keystrokelistener.c
4088 (spi_keystroke_listener_get_type): kill
4089 (spi_keystroke_listener_class_init),
4090 (spi_keystroke_listener_init): rename to this.
4092 * libspi/text.c (impl_getAttributes): fix warning / bug.
4094 * libspi/*.[ch]: more headers, includes and over commenting.
4096 2001-11-20 Michael Meeks <michael@ximian.com>
4098 * libspi/*.[ch]: fixup headers, includes and over commenting.
4100 * libspi/image.c (impl__get_imageDescription): const
4101 correctness warning fix. remove redundant casting.
4103 * libspi/table.c (impl_getRowDescription): ditto.
4104 (impl_getColumnDescription): ditto.
4106 * libspi/libspi.h: add.
4108 2001-11-19 Michael Meeks <michael@ximian.com>
4110 * libspi/editabletext.c (impl_setAttributes): fix warnings.
4112 * libspi/component.c (accessibility_component_get_type):
4113 rename to (spi_component_get_type): and macroify.
4114 (accessibility_component_init): rename to
4115 (spi_component_init): this
4116 (accessibility_component_class_init): rename to
4117 (spi_component_class_init): this
4119 * libspi/action.c (spi_action_get_type): kill, use the macro.
4121 * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4124 * libspi/application.c (spi_application_object_event_listener),
4125 (impl_accessibility_application_register_object_event_listener):
4126 warning fixes / const understanding updates.
4128 * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4131 2001-11-18 Bill Haneman <bill.haneman@sun.com>
4133 * libspi/spi_accessible.c: Added docs and C bindings for
4134 AccessibleStateSet. (No implementations yet). Documentation
4135 coverage for C bindings now 100%. Made docs for event listeners
4140 boolean notifyListenersSync (in DeviceEventListener listener,
4141 in DeviceEvent event);
4143 oneway void notifyListenersAsync (in DeviceEventListener listener,
4144 in DeviceEvent event);
4146 Added DeviceEventListener and DeviceEvent structs (may deprecate
4147 KeyStroke and KeystrokeListener in favor of this generic
4148 event/listener framework for devices).
4150 * libspi/deviceeventcontroller.c:
4152 Changed some key listener code to take masks, etc., and paved the
4153 way for integration of toolkit/non-preemptive key events. Changed
4154 signatures of some internal methods.
4156 * at-bridge/bridge.c:
4157 Fixed regression connecting to interface signals, apparently
4158 caused by GTK+ changes.
4160 Added an internal bridge_state_listener to deal with
4161 property-change:accessible-state signals.
4163 Changed the key_listeners GList to store structs (including masks,
4164 etc.) instead of just CORBA_Objects (required for full
4165 implementation of key listener API).
4167 Connected the bridge to all currently supported Atk signals.
4168 Events now supported:
4169 object:property-change
4170 object:property-change:accessible-name
4171 object:property-change:accessible-state
4172 object:property-change:accessible-description
4173 object:property-change:accessible-parent
4174 object:property-change:accessible-value
4175 object:property-change:accessible-role
4176 object:property-change:accessible-table-caption
4177 object:property-change:accessible-table-column-description
4178 object:property-change:accessible-table-column-header
4179 object:property-change:accessible-table-row-description
4180 object:property-change:accessible-table-row-header
4181 object:property-change:accessible-table-summary
4182 object:children-changed
4183 object:visible-data-changed
4184 object:selection-changed
4185 object:text-selection-changed
4187 object:text-caret-moved
4189 object:row-reordered
4191 object:column-inserted
4192 object:column-reordered
4193 object:column-deleted
4194 object:model-changed
4196 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4198 * libspi/hyperlink.c,h:
4199 Fixed some broken stuff in hyperlink.
4201 * libspi/relation.h:
4202 * libspi/relation.c:
4203 * cspi/spi_accessible.c:
4204 Initial implementations of AccessibleRelation methods, and docs.
4206 * libspi/accessible.c:
4207 Fixed a bug that caused SEGV if an accessible
4208 object's description is NULL, and a client
4209 requests it. An empty string is now returned.
4211 * cspi/spi_editabletext.c:
4212 * cspi/spi_hypertext.c:
4214 * cspi/spi_hyperlink.c:
4218 Doc coverage now 95%.
4220 2001-11-16 Bill Haneman <bill.haneman@sun.com>
4222 One last namespacing revision:
4223 * libspi/accessibleeventlistener.[ch]:
4224 Renamed SpiAccessibleEventListener to SpiEventListener,
4225 (no need for two namespaces ;-)
4227 And lots of documentation fixes:
4229 * docs/at-spi-docs.sgml:
4230 Fixed 'underscore vs. hyphen' bug that was preventing
4231 the gtk-doc API docs from being automatically generated.
4234 * cspi/spi-listener.h
4236 * cspi/spi_accessible.c
4238 * cspi/spi_application.c
4239 * cspi/spi_component.c
4240 * cspi/spi_editabletext.c
4242 * cspi/spi_hypertext.c
4244 * cspi/spi_registry.c
4245 * cspi/spi_selection.c
4249 * docs/at-spi-docs.sgml
4250 * docs/at-spi-sections.txt
4252 Added and fixed up gtk-doc documentation in cspi.
4254 Interfaces now (fully) documented (subject to revision and enhancement):
4256 Event Listener Support
4258 AccessibleApplication
4262 AccessibleEditableText
4269 AccessibleRelationSet
4274 2001-11-14 Bill Haneman <bill.haneman@sun.com>
4276 * at-bridge/bridge.c:
4277 Initial work for toolkit-level key snooper connection by bridge.
4282 New typedefs and fixes to support new namespacing, and cleaner
4283 separation of cspi bindings from libspi bonobo implementation.
4284 Removed inconsistent and extraneous Spi* namespace prefix that
4285 had crept into cspi headers.
4286 Lots of comment fixes that sed had missed.
4288 * cspi/spi-roletypes.h:
4289 * cspi/spi-statetypes.h:
4290 Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
4291 to AccessibleRoleType.
4293 * libspi/accessibleeventlistener.h:
4294 Fixed minor namespacing weirdness.
4296 * libspi/deviceeventcontroller.c:
4297 Reordered some internal API for device listeners.
4298 Changed the key registry final boolean to 'is_system_global'
4299 rather than 'is_synchronous', which is more descriptive of its
4301 Added spi_device_event_controller_new().
4302 Added SpiRegistry backpointer to SpiDeviceEventControllerClass.
4304 * libspi/keystrokelistener.[ch]:
4305 Namespaced KeystrokeListener to SpiKeystrokeListener.
4306 Changed uses of keymasks to use SPI_ prefix, and did other
4309 * libspi/keymasks.h:
4310 Namespaced keymask constants with SPI_ prefix.
4312 * libspi/registry.c:
4313 Some warning fixes, and knock-on fixes from namespace changes.
4316 Added rules for accessx-gui test program.
4318 * test/accessx-gui.c:
4319 Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
4320 utility. It doesn't actually use at-spi, but it's still cool and
4323 * test/keysynth-demo.c:
4327 Fixes so that these test clients work properly with the namespaced
4328 libraries. (Incompletely tested for technical reasons, fixes may follow)
4331 2001-11-13 Michael Meeks <michael@ximian.com>
4333 * libspi/application.c
4334 (impl_accessibility_application_get_version),
4335 (impl_accessibility_application_get_toolkit_name):
4337 (impl_accessibility_application_set_id),
4338 (impl_accessibility_application_get_id): remove
4339 redundant casting code.
4341 * libspi/action.c (impl_getDescription): fix warnings.
4343 * libspi/accessible.c
4344 (impl_accessibility_accessible_get_parent),
4345 (impl_accessibility_accessible_get_child_at_index),
4346 (impl_accessibility_accessible_get_state),
4347 (impl_accessibility_accessible_get_relation_set):
4348 warning fixes & include action.h
4350 2001-11-13 Michael Meeks <michael@ximian.com>
4352 * *.[ch] fix bits I screwed up:
4354 s/([^ \tb(\*\&\?\",])spi_/\1/g;
4355 s/([^ \tb(\*\&\?\",])Spi/\1/g;
4357 2001-11-13 Michael Meeks <michael@ximian.com>
4359 * *.[ch] Namespace libspi into spi_ and Spi.
4361 2001-13-11 Michael Meeks <michael@ximian.com>
4363 * Makefile.am: dist & install at-spi-1.0.pc
4365 * libspi/Makefile.am: install into at-spi-1.0
4367 * idl/Makefile.am (idldir): install into at-spi-1.0
4369 * at-spi-1.0.pc.in: add.
4371 * configure.in: build it.
4373 2001-11-12 Bill Haneman <bill.haneman@sun.com>
4375 * test/keysynth-demo.c:
4376 Use a 'realize' signal-handler to set the WM properties for
4377 the virtual keyboard, rather than making it a "POPUP" type
4378 override-redirect window (thanks to anders carlsson for that
4381 2001-11-11 Bill Haneman <bill.haneman@sun.com>
4384 * test/keysynth-demo.c:
4385 Added new test of key synthesis, which creates a simple
4386 (mouse-operated) onscreen keyboard. It inserts key events into
4387 the currently-focused window, thus it does not grab keyboard focus
4390 * cspi/spi_registry.c:
4391 Added C binding for AT-SPI generateKeyEvent.
4393 * libspi/deviceeventcontroller.c:
4394 Added call to XFilterEvent so that key listener works with XIM (we
4395 hope). Added event_synth_type to generateKeyEvent, so that we can
4396 produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
4397 synthesize a press/release pair for KeySyms.
4399 2001-11-09 Bill Haneman <bill.haneman@sun.com>
4401 * libspi/Makefile.am:
4402 * registryd/Makefile.am:
4403 (temporary) hack to include libXtst in libspi and registryd.
4404 (Needed for keystroke synthesis, see below).
4407 Improved API for registerKeystrokeListener, in accordance with
4408 discussions with Gnopernicus team and X server research.
4410 * libspi/registry.c:
4411 * libspi/deviceeventcontroller.c:
4412 * libspi/accessible.c:
4413 * libspi/keystrokelistener.c:
4414 Changes and fixes to support keylisteners for potentially
4415 consumed key events (that is, 'passive grabs').
4416 Added implementation for generateKeyEvent() [untested].
4419 Changes to registerKeystrokeListener() API, as above.
4420 Added deregisterGlobalEventListenerAll(), and
4421 deregisterKeystrokeListener(), which are needed for clean exit of
4423 Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
4424 and a macro ALL_KEYS which may be used in place of a KeySet pointer.
4426 * cspi/spi_registry.c:
4427 Added implementations of function prototypes mentioned above.
4429 * registryd/registryd.c:
4430 Added the key listener event source as a g_timeout(), to allow
4431 receipt of key events that are not caught by GDK (since GDK
4432 doesn't support passive keygrabs, this was necessary).
4435 Changed to attach a keylistener to 'Alt' keys, and
4436 respond to the following keycommands: Alt-M (toggle magnifier);
4437 Alt-F (toggle speech); Alt-Q (quit).
4438 Added an exit routine to deregister the listeners, and a key
4439 listener that prints some key info to the console when a key
4440 matches the listener mask (and is thus received by the listener).
4442 * util/idl/Magnifier.idl:
4443 Changes to magnifier API to support multiple zoom regions,
4444 non-uniform scaling in x and y, markDirty, and a host of other
4445 features that would be useful to magnification.
4448 * util/mag_client.c:
4449 * util/mag_client.h:
4450 * util/mag_control.c:
4452 Source code changes to support the above IDL changes.
4455 As above, and also changes to use a (slower) generic conversion
4456 path for colormap conversions, since the fast RGB conversions have been
4457 reported to fail for 16-bit displays.
4459 2001-10-26 Michael Meeks <michael@ximian.com>
4461 * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
4463 2001-10-26 Laszlo Peter <laca@ireland.sun.com>
4465 * at-bridge/Makefile.am: fix LDFLAGS.
4467 2001-10-09 Bill Haneman <bill.haneman@sun.com>
4469 * at-bridge/bridge.c:
4470 Re-worked listeners for toolkit events, now we have signal
4471 and property listeners. Added a private method
4472 register_atk_event_listeners(), which registers with the
4473 various atk and gtk signals we need to monitor in order to emit
4475 Added emission hook for AtkObject:property-change events, to
4476 support the 'property listeners'.
4477 Fixed some alloc()s of Accessibility_Event structs to use CORBA
4480 * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
4481 which emit warnings and exit, respectively, if CORBA errors occur
4482 during remote calls, and we now use these methods to check most of
4483 our CORBA calls in the C bindings.
4485 * cspi/spi_accessible.c:
4486 Changed AccessibleSelection_refSelectedChild() to
4487 AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
4488 now increment refcounts.
4490 * cspi/spi_component.c:
4491 Fixed some long pointer casts (dangerous!) to pass pointers to
4492 CORBA_longs of the proper type to the CORBA stubs, and copy the
4493 data into the longs that were passed into the C bindings code.
4495 * at-bridge/bridge.c:
4497 * libspi/accessible.c:
4498 Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
4499 hyperlinks, AtkHyperlink is an object type.
4501 * libspi/application.c:
4502 Added various conversions to and from "generic" event types and
4503 atk-specific types; this is really part of the 'bridge'
4504 implementation but is valid for all AtkObject-based accessibility
4507 * libspi/editabletext.c:
4508 Fixed nasty bug wherein editable text's finalize method was
4509 unref'ing tha AtkObject reference that the text parent class was
4510 about to unref _again_. There was also a nasty inheritance bug
4511 that meant that the AccessibleEditableText class was corrupt.
4513 * libspi/selection.c:
4514 Provided implementations for some selection API that was broken.
4516 * idl/Application.idl:
4517 Added registerObjectEventListener () method.
4520 Fixed a number of return values that were Bonobo_Unknowns from
4521 bonobo_object_corba_objref(), which I
4522 forgot to dup before returning. Changed instances of
4523 bonobo_object_corba_objref (bonobo_object(o)) to
4524 BONOBO_OBJREF(o), for concision and clarity.
4526 2001-10-13 Louise Miller <louise.miller@sun.com>
4528 * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
4529 idl/Event.idl, idl/Registry.idl
4530 Changed these files to include Bonobo_Unknown.idl instead
4533 2001-09-10 Marc Mulcahy <marc.mulcahy@sun.com
4535 * libspi/component.c libspi/component.h:
4536 Fixed typo. Added assertions for object checks in
4537 AccessibleComponent code.
4539 2001-10-09 Bill Haneman <bill.haneman@sun.com>
4541 * idl/Accessible.idl:
4542 Added 'isEqual (Accessible *object)'
4543 method for Accessible. (Not Yet Implemented).
4546 Changed signature of registerKeystrokeListener() to
4547 take a KeySet and KeyEventSeq so that specific keys and event
4548 types could be requested for monitoring, and added a flag
4549 is_synchronous so that either synchronous or asynchronous
4550 notification could be requested. (However this is not all
4551 implemented yet). This also meant adding two new typedefs,
4552 KeyEventSeq and KeySet.
4555 Added two new relations, RELATION_TOOLTIP_FOR and
4556 RELATION_LEAFNODE_OF.
4559 Added new state, STATE_HAS_TOOLTIP.
4561 * libspi/text.c, editabletext.c:
4562 Added new assertions to all casts of bonobo-objects from
4563 CORBA servants, to prevent Text API calls on non-text objects.
4564 Changed suspect casts of int-pointer types, so that we
4565 always send a valid CORBA_long pointer to the CORBA APIs that use
4566 in/out long parameters. We then have to copy from the CORBA_long
4567 into the regular long or int for return to the C bindings, or
4568 vice-versa when returning parameters from ATK calls to the bonobo wrappers.
4571 * libspi/deviceeventcontroller.c:
4572 Cleaned these sources up.
4574 Changed return type for getCharacterAtOffset to
4575 CORBA_unsigned_long, to allow for 32-bit characters.
4578 2001-10-08 Bill Haneman <bill.haneman@sun.com>
4582 Fixed 'make dist' so that distro compiles...
4583 * libspi/keymasks.h:
4585 * cspi/spi-listener.c:
4586 KeystrokeListenerCB now returns a boolean.
4588 Added KeyEventType struct, and KeyStroke.
4589 Also added createKeystrokeListener(),
4590 KeystrokeListener_addCallback(),
4591 KeystrokeListener_removeCallback(), and added a keymask to
4592 registerKeystrokeListener().
4593 * cspi/spi_accessible.c:
4594 Changed numerous return types for interfaces from
4595 AccessibleComponent to Accessible<InterfaceName>; this was
4596 probably a cut-and-paste error.
4598 Implementations of new KeystrokeListener api (from spi.h,
4601 Changes to key modifier mapping.
4602 Created ControllerEventMask struct.
4603 Made DeviceEventController derive from Bonobo::Unknown.
4605 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
4606 * libspi/deviceeventcontroller.c:
4607 Added a number of new internal (private) methods.
4608 * libspi/editabletext.c:
4609 * libspi/editabletext.h:
4610 Fixed a number of bugs related to the fact that
4611 editabletext inherits from text. Fixed the EditableText struct,
4612 the init() call, and use correct casts when calling Text methods
4613 from an EditableText object. Removed (duplicate) atko from the
4614 EditableText structure, we use the one in the parent Text
4615 structure via the casts mentioned above.
4616 * libspi/keystrokelistener.[ch]:
4617 * libspi/registry.c:
4618 Changes in support of keyboard handling (above).
4620 Keyboard handling, though partly functional, is still not
4621 recommended for at-spi client use as there is considerable
4622 work yet to be done.
4625 Changed some places where pointers to various int types
4626 are cast to be pointers to CORBA_long types and vice-versa:
4627 pointer casting is not safe so we pass pointers of the correct
4628 types and then cast the result before putting it into the target
4631 * libspi/text.h: minor typos corrected.
4633 We now speak not only the name of a Text element, but the
4634 first sentence of its content, when it receives focus.
4635 I also changed the text compression to 75% from 50%.
4636 * util/Accessibility_Util.server.in:
4637 Changed the default magnifier type to be a 3x vertical
4638 splitscreen magnifier (was previously a 2x horizontal one).
4640 2001-10-03 Bill Haneman <bill.haneman@sun.com>
4642 * libspi/keystrokelistener.h:
4643 * libspi/keystrokelistener.c:
4644 Initial functional implementations of KeystrokeListener.
4647 2001-10-05 Marc Mulcahy <marc.mulcahy@sun.com>
4649 Fixed string handling for NULL strings in libspi.
4650 Added spi_freeString to free strings returned by C bindings.
4652 2001-09-30 Bill Haneman <bill.haneman@sun.com>
4654 * libspi/keystrokelistener.h:
4655 * libspi/keystrokelistener.c:
4656 Began (no-op) implementations of KeystrokeListener
4658 * libspi/deviceeventcontroller.c:
4659 * libspi/deviceeventcontroller.h:
4660 Began creating implementations of DeviceEventController,
4661 to handle keystroke and mouse event listening and
4663 * libspi/accessible.c:
4664 Stubbed-in the implementations for
4665 Accessibility_Accessible_getState and
4666 Accessibility_Accessible_getRelationSet.
4667 * libspi/registry.c:
4668 Improved de-registration process and fixed some bugs,
4669 deregistration now works correctly.
4671 Added initialization of applications list (to NULL).
4673 Reduced speech compression from 0.5 to 0.7, for demo.
4674 Changed call to gdk_window_set_decorations()
4675 to gtk_window_set_decorated().
4676 * at-bridge/bridge.c:
4677 Bridge now deregisters when app exits, via
4678 registration of a cleanup function
4679 with the g_atexit() call.
4680 Required making 'app' static, renamed 'this_app'.
4681 Fixed broken use of bonobo_init, passing argv wrongly.
4683 2001-09-27 Bill Haneman <bill.haneman@sun.com>
4687 Created a new directory for
4688 accessibility-related utilities, primarily for
4689 testing and demo purposes, but with possible
4696 Onscreen magnifier utility that
4697 is implemented as a bonobo service.
4699 * util/mag_client.c:
4700 * util/mag_client.h:
4701 Client-side support (simple C bindings)
4702 for Magnification service
4704 * util/mag_control.c:
4705 Client program example for
4706 Magnification service
4708 * util/Accessibility_Magnifier.server.in:
4709 Bonobo-activation file for the
4710 Magnification service.
4713 * util/idl/Magnifier.idl:
4714 IDL defining the bonobo Magnification
4718 Modifications to use the bonobo-activated magnifier
4719 above, in place of trying to connect to an existing
4720 magnifier that uses socket-listening IPC.
4722 If env variable MAGNIFIER is set, a magnifier service
4723 will be started if one does not exist.
4725 2001-09-25 Bill Haneman <bill.haneman@sun.com>
4727 * at-bridge/bridge.c:
4728 applied patch from Marc to build and run
4729 against new glib and gtk+ (seemed like a change
4730 to bonobo_init signature was made ?)
4732 made festival-server support turned off by default.
4733 Added support for a simple magnifier (off by default)
4734 which will be added to a 'util' directory later.
4735 * at-bridge/Makefile.am:
4736 Changed "application.h" header from a 'source'
4737 to a 'dependency' of libat-bridge.
4739 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
4748 Added interface implementation c files to list of
4749 includes so they are included in libcspi.
4752 Changed prototype of AccessibleAction_doAction to return a
4754 Changed prototype of AccessibleTable_getCaption to
4755 return an Accessible.
4756 Changed prototype of AccessibleTable_getSelectedRows
4757 and AccessibleTable_getSelectedColumns to
4758 return a long (returns the number of selected rows
4759 or columns respectively).
4760 Changed name of AccessibleText_refRunAttributes to
4761 AccessibleText_getAttributes.
4762 Changed prototype of AccessibleText_getCharacterExtents to
4763 return a void rather than a boolean.
4764 Added support for a AccessibleCoordType parameter
4765 specifying what type of coordinates are desired.
4766 Added an AccessibleCordType parameter to
4767 AccessibleText_getPointAtOffset.
4769 * cspi/spi_accessible.c:
4770 Added code to return the outstanding interfaces from
4771 Accessible_queryInterface.
4773 * cspi/spi_action.c:
4775 Corrected call to getNActions to call the c binding
4778 * cspi/spi_editabletext.c:
4780 Changed name from setRunAttributes to setAttributes.
4782 * cspi/spi_hyperlink.c:
4784 Changed call to getNAnchors to correctly call the c
4785 binding for an attribute.
4787 * cspi/spi_hypertext.c:
4789 Changed getImageDescription to correctly call the
4790 binding for an attribute.
4792 * cspi/spi_selection.c:
4793 Changed getNSelectedChildren to correctly call the c
4794 binding for the attribute.
4795 Changed refSelectedChild to getSelectedChild.
4799 Changed getCaption to return an Accessible.
4800 Fixed calls which retrieve attributes.
4801 Changed refAt to getAccessibleAt.
4802 Changed getNSelectedRows and getNSelectedColumns to
4806 Changed getCharacterExtents and getPointAtOffset to accept an
4807 AccessibleCoordType.
4809 Changed calls which retrieve attributes.
4810 Changed refRunAttributes to getAttributes.
4815 * idl/Hyperlink.idl:
4816 Changed n_anchors attribute to nAnchors to keep naming
4817 convention consistent.
4820 Made Table inherit from Bonobo::Unknown.
4821 Added nSelectedColumns and nSelectedRows attributes.
4824 Made Value inherit from Bonobo::Unknown.
4826 * libspi/hyperlink.c:
4827 Change for nAnchors attributte name change.
4829 2001-09-12 Marc Mulcahy <marc.mulcahy@sun.com>
4837 Added interface implementation c files to list of
4838 includes so they are included in libcspi.
4841 Changed prototype of AccessibleAction_doAction to return a
4843 Changed prototype of AccessibleTable_getCaption to
4844 return an Accessible.
4845 Changed prototype of AccessibleTable_getSelectedRows
4846 and AccessibleTable_getSelectedColumns to
4847 return a long (returns the number of selected rows
4848 or columns respectively).
4849 Changed name of AccessibleText_refRunAttributes to
4850 AccessibleText_getAttributes.
4851 Changed prototype of AccessibleText_getCharacterExtents to
4852 return a void rather than a boolean.
4853 Added support for a AccessibleCoordType parameter
4854 specifying what type of coordinates are desired.
4855 Added an AccessibleCordType parameter to
4856 AccessibleText_getPointAtOffset.
4858 * cspi/spi_accessible.c:
4859 Added code to return the outstanding interfaces from
4860 Accessible_queryInterface.
4862 * cspi/spi_action.c:
4864 Corrected call to getNActions to call the c binding
4867 * cspi/spi_editabletext.c:
4869 Changed name from setRunAttributes to setAttributes.
4871 * cspi/spi_hyperlink.c:
4873 Changed call to getNAnchors to correctly call the c
4874 binding for an attribute.
4876 * cspi/spi_hypertext.c:
4878 Changed getImageDescription to correctly call the
4879 binding for an attribute.
4881 * cspi/spi_selection.c:
4882 Changed getNSelectedChildren to correctly call the c
4883 binding for the attribute.
4884 Changed refSelectedChild to getSelectedChild.
4888 Changed getCaption to return an Accessible.
4889 Fixed calls which retrieve attributes.
4890 Changed refAt to getAccessibleAt.
4891 Changed getNSelectedRows and getNSelectedColumns to
4895 Changed getCharacterExtents and getPointAtOffset to accept an
4896 AccessibleCoordType.
4898 Changed calls which retrieve attributes.
4899 Changed refRunAttributes to getAttributes.
4904 * idl/Hyperlink.idl:
4905 Changed n_anchors attribute to nAnchors to keep naming
4906 convention consistent.
4909 Made Table inherit from Bonobo::Unknown.
4910 Added nSelectedColumns and nSelectedRows attributes.
4913 Made Value inherit from Bonobo::Unknown.
4915 * libspi/hyperlink.c:
4916 Change for nAnchors attributte name change.
4919 2001-09-05 Marc Mulcahy <marc.mulcahy@sun.com>
4921 implementations-- made server implementations own AtkObject pointers
4922 rather than their respective AtkInterrface pointers to fix
4923 refcounting. AtkHyperlink is still broken.
4925 2001-09-04 Bill Haneman <bill.haneman@sun.com>
4926 * cspi/spi_accessible.c:
4927 Added method Accessible_Role_getName(),
4928 and requisite string array (role_names).
4929 Added conversion string_from_corba_strin() call
4930 to Accessible_getName and _getDescription.
4931 * libspi/accessible.c:
4932 Added implementation for Accessible_getRole()
4934 Added festival support, used if environment variable
4937 2001-09-04 Bill Haneman <bill.haneman@sun.com>
4939 * at-bridge/bridge.c:
4940 Now allocate Accessibility_Event using
4941 Accessibility_Event__alloc() instead of g_new0().
4942 * libspi/accessibleeventlistener.c:
4943 Initialize AccessibleEventListener->callbacks to NULL.
4944 Fixed accessible__event_listener_init() param, changed to
4945 "AccessibleEventListener *" type.
4946 Changed a bonobo_object_release_unref() call to
4947 Accessibility_Accessible_unref().
4948 * libspi/listener.c:
4949 Changed Bonobo_Unknown_unref to (equivalent)
4950 Accessibility_Accessible_unref.
4951 * libspi/registry.c:
4952 Changed bonobo_object_release_unref to
4953 Accessibility_Accessible_unref.
4955 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
4958 spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
4959 spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
4960 spi-util.c spi-util.h
4961 Implementations for C bindings to remaining accessibility
4964 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
4967 changed return value of Action from void to boolean to
4968 bring in line with ATK.
4971 Changed getText funcions to return "out" start and end offsets.
4972 Changed getAttributes to take and offset and return the start
4973 and end offset of the attribute run.
4974 Changed getOffsetAtPoint and getCharacterExtents to take an
4975 enum describing whether coordinates are window or screen.
4978 libspi/action.c libspi/action.h libspi/editabletext.c
4979 libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
4980 libspi/hypertext.c libspi/hypertext.h libspi/image.c
4981 libspi/image.h libspi/selection.c libspi/selection.h
4982 libspi/table.c libspi/table.h libspi/text.c libspi/text.h
4983 libspi/value.c libspi/value.h
4984 Added server implementations for outstanding ATK interfaces
4985 not yet implemented.
4987 2001-09-04 Bill Haneman <bill.haneman@sun.com>
4990 Added (missing) getName() method.
4991 Made nActions an attribute.
4992 * idl/EditableText.idl:
4993 Changed order of params in setAttributes.
4994 * idl/Hyperlink.idl:
4995 Removed getAnchor, added getURI.
4997 Changed attributes to methods, for efficiency
4998 (so that getting extents can be done in one call)
4999 * idl/Selection.idl:
5000 Changed nSelectedChildren to attribute, and re-indented.
5001 * idl/Table.idl: changed nrows, ncolumns, caption, summary
5003 * idl/Text.idl: reformatted to match our coding style.
5004 (temporarily?) removed getRowColumnAtOffset().
5005 Changed text selection API to support multi-select and
5006 non-contiguous selections, as in ATK.
5007 * idl/Value.idl: changed some methods to attributes.
5009 2001-08-24 Mark McLoughlin <mark@skynet.ie>
5011 * libspi/listener.c(impl_notify_event):
5012 BonoboUnkown_unref the source instead
5013 of bonobo_object_release_unref - the ORB
5014 handles the releasing.
5016 * configure.in: require ORBit-2.3.94 for
5019 2001-08-21 Bill Haneman <bill.haneman@sun.com>
5021 Tagged CVS repository 'EA_1_0'.
5022 * README.EARLY_ACCESS:
5023 Alphabetized acknowledgements list, and
5025 Listed some known dependencies of at-spi.
5027 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5029 * docs/at-spi-docs.sgml:
5030 * docs/at-spi-sections.txt:
5031 * docs/at-spi-overrides.txt: (Added zero-length file)
5032 Documentation improvements - gtk-doc should build
5033 docs for all implemented C bindings now.
5036 * cspi/spi.c: (New file)
5037 * cspi/spi_event.c: (New file)
5038 * cspi/spi_registry.c: (New file)
5039 * cspi/spi_accessible.c: (New file)
5040 * cspi/spi_application.c: (New file)
5041 * cspi/spi_component.c: (New file)
5042 Split spi_main.c into six parts, and included them from
5043 "spi.c". This is a bit of a hack, probably temporary,
5044 but required by gtk-doc, apparently.
5046 2001-08-20 Bill Haneman <bill.haneman@sun.com>
5049 * docs/at-spi-docs.sgml:
5050 * docs/at-spi-sections.txt:
5052 Initial checkins/modifications for gtk-doc generation.
5055 Added (missing) interface query methods to Accessible's C binding.
5057 Added GenericInterface type definition.
5059 Added query for AccessibleComponent interface to focus event handler.
5060 Added printout of bounding box for focussed component.
5061 * libspi/component.c:
5062 Added partial implementation for AccessibleComponent to C binding.
5063 * idl/Application.idl:
5064 * libspi/registry.c:
5065 * libspi/listener.c:
5066 * libspi/application.c:
5067 * libspi/application.h:
5068 Changed "ID" attribute type from string to long.
5070 2001-08-19 Bill Haneman <bill.haneman@sun.com>
5074 Made method naming consistent: methods taking object args
5075 start with uppercase, other methods (except those using
5076 acronyms) start with lowercase. Underscores delimit between
5077 object names and method names:
5078 SPI_init() - uppercase since it starts with an acronym.
5079 getDesktopCount () - lowercase start since no object param0.
5080 Accessible_getName() - uppercase object type name, studlyCaps method
5084 Added gtk-doc documentation for all currently implemented
5085 methods in the C bindings API.
5087 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5089 * Makefile.am : changed build order to build test last.
5092 Changed "createEventListener" to "CreateEventListener".
5093 * libspi/accessibleeventlistener.c :
5094 Bugfix for addition of callbacks.
5095 * test/Makefile.am :
5096 * test/simple-at.c :
5097 Added new test that uses the C bindings API.
5099 * libspi/listener.c :
5100 * libspi/registry.c :
5101 * libspi/accessibleeventlistener.c :
5102 * at-bridge/bridge.c :
5103 Renamed member "target" of Accessibility_Event to "source",
5104 which is more descriptive.
5107 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5111 * cspi/Makefile.am :
5112 Added makefile support for at-spi/cspi directory.
5115 * cspi/spi-listener.h : (NEW FILE)
5116 Added support for/use of spi-listener.h.
5118 C bindings now build successfully, with no warnings.
5119 * libspi/accessibleeventlistener.h : (NEW FILE)
5120 * libspi/accessibleeventlistener.c : (NEW FILE)
5121 * libspi/Makefile.am :
5122 Added new object type "AccessibleEventListener"
5123 which inherits from Listener, and allows attachment
5124 of in-process callbacks (so that a client with a listening
5125 object instance can add functionality to the local
5126 implementation, dynamically).
5128 2001-08-18 Bill Haneman <bill.haneman@sun.com>
5130 * libspi/accessible.c:
5131 Add implementation for get_index_in_parent().
5133 Added #include of "spi-roletypes.h", and
5134 added enumerated type AccessibleCoordType.
5135 Added definition for KeystrokeListener (function type).
5138 * cspi/spi-statetypes.h :
5139 * cspi/spi-roletypes.h :
5141 Added these headers, used by spi.h.
5143 Added code (NOTE: not yet built by make).
5145 2001-08-18 Mark McLoughlin <mark@skynet.ie>
5147 * libspi/Makefile.am: generate imodule
5148 at the same time as other idl compiler
5151 2001-08-17 Bill Haneman <bill.haneman@sun.com>
5152 * libspi/registry.c :
5153 * libspi/application.c :
5154 * idl/Application.idl :
5155 Made registration with toolkit an application method,
5156 which is required since each app has its own toolkit static
5157 environment. Thus the bridge must register for
5158 notification of toolkit events from each application in turn.
5159 Toolkit notifications are now successfully registered for, and
5160 sent to the listening at client.
5162 Changed toolkit event string to use hyphens rather than underscores.
5163 * libspi/listener.c :
5164 listner now gives more info in debug mode - it reports the
5165 name of the event received, as well as the name of the source.
5168 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5170 * libspi/registry.c :
5171 added more implementation for toolkit events.
5172 Fixed bug such that toolkit event registrations
5173 (via atk) use the whole event name string, not
5175 Removed a useless call to an ORBit_ method.
5176 * at-bridge/bridge.c :
5177 Removed unused local sbuf[] variable.
5179 We now register for Gtk:GtkWidget:button_press_event
5180 events as well as "focus:" events.
5182 Add some more API from Registry.idl that was missing,
5183 for keystroke listening, keystroke and mouse event
5184 synthesis, and enumeration of accessible desktops.
5186 2001-08-16 Michael Meeks <michael@ximian.com>
5188 * configure.in: use AM_GLIB_GNU_GETTEXT.
5190 * Makefile.am (SUBDIRS): kill intl.
5192 2001-08-15 Michael Meeks <michael@ximian.com>
5194 * registryd/Makefile.am: s/oaf/server/ relocate info file.
5196 * configure.in: upd.
5198 * configure.in: depend on a recent bonobo-activation that
5199 will find our server files ...
5201 2001-08-16 Bill Haneman <bill.haneman@sun.com>
5203 * libspi/accessible.c : accessible_new() :
5204 Now we add the Component interface via bonobo_object_add_interface,
5205 if the contained AtkObject implements AtkComponent.
5206 * libspi/accessible.h : now include "component.h"
5207 * libspi/component.h :
5208 * libspi/component.c : added files - implementation of
5209 bonobo wrapper object for Accessibility/Component
5210 * libspi/listener.c :
5211 Added test code to check for Accessibility/Component:1.0
5212 interface and report whether it is implemented by the
5214 * libspi/registry.c :
5215 Now we check for not only the hash of the whole event
5216 string before relaying the event, we also check the
5217 "minor" event string (without the detail string).
5218 This allows event listeners to be registered against
5219 all events of a certain major+minor type, or just
5220 against a specific major+minor+detail type.
5221 * libspi/accessible.c :
5222 Added implementations for Accessible:get_parent(),
5223 Accessible:getChildCount(), and Accessible:getChildAtIndex().
5224 * libspi/registry.c :
5225 * libspi/listener.c :
5226 Replaced calls to Accessibility_Accessible_ref() and
5227 Accessibility_Accessible_unref() with
5228 calls to bonobo_object_dup_ref() and
5229 bonobo_object_release_unref(), so that the CORBA object
5230 is dup-ed and released when relayed, as well as the bonobo object.
5232 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5234 * libspi/Makefile.am,
5235 registryd/Makefile.am,
5236 at-bridge/Makefile.am.
5237 test/Makefile.am, configure.in:
5238 reverse previous changes.
5240 * /idl/Image.idl: fix typo.
5242 * test/Makefile.am: put DEBUG_FLAGS
5245 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5247 * test/app.c: use argv[0] instead of
5250 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5252 * libspi/Makefile.am,
5253 registryd/Makefile.am,
5254 at-bridge/Makefile.am.
5255 test/Makefile.am, configure.in:
5256 cleanup, replace individual LIBS/CFLAGS with
5257 AT_COMMON_{LIBS|CFLAGS}.
5261 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5263 * configure.in, libspi/Makefile.am:
5264 Change IDL path checking for bonobo-activation
5267 2001-08-15 Bill Haneman <bill.haneman@sun.com>
5269 * registryd/registry.c : separated event listeners to use
5270 3 separate lists (focus, window, toolkit). Began testing
5271 event names against hashes before relaying events.
5272 * test/at.c : now register for events of type "focus:"
5273 * test/app.c : now generate events of type "focus:"
5274 * at-bridge/bridge.c : register with ATK for focus events,
5275 and we now relay those focus events to any "focus:" listeners.
5276 This now works with the bridge as a GTK_MODULE when running test/at.
5277 * libspi/registry.c :
5278 * libspi/listener.c :
5279 now we ref event sources before propagating, and unref on receipt.
5280 * libspi/registry.c :
5281 some changes to internal structs, to support event typestring hashes.
5282 * text/app.c : changed the way the appname is generated.
5283 * cspi : added directory that will hold the C bindings library for
5284 non-CORBA/bonobo-savvy clients.
5285 * cspi/spi.h : header file that contains the function prototypes for the C binding.
5286 * idl/Component.idl : added in parameter to indicate coord system for
5287 geometry-related calls.
5288 * idl/Hyperlink.idl : added readonly n_links attribute
5289 * idl/Image.idl : changed methods to attributes.
5291 2001-08-15 Mark McLoughlin <mark@skynet.ie>
5293 * at-bridge/Makefile.am: link against
5294 ../libspi/libspi.la instead of -lspi.
5296 * at-spi/test/app.c: include
5297 bonobo-activation.h. Use a default appname
5298 if one is not provided.
5300 2001-08-14 Bill Haneman <bill.haneman@sun.com>
5302 * idl/Registry.idl : temporarily changed register_Application
5303 to oneway, to work around issue with initial registration
5305 * idl/Application.idl : changed attribute "id" from readonly
5306 to read-write, since it needs to be assigned by Registry.
5307 * registryd/registryd.c : added call to set application id
5309 * registryd/registry.c : changed de-registration procedure to
5310 use CORBA_Object_hash() to find matching object ref in application
5311 lists and listener lists.
5312 * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
5313 began distinguishing between event types (work in progress).
5315 2001-08-13 Bill Haneman <bill.haneman@sun.com>
5318 * libspi/application.c:
5319 Added implementations for get/set id, get_toolkitName,
5321 * registryd/registryd.c :
5325 Converted from use of OAF to bonobo-activation.
5326 * libspi/desktop.h :
5327 * libspi/desktop.c :
5329 Removed references to atksimpleobject, since base atkobject
5330 implementation now provides functionality we need.
5331 * libspi/atksimpleobject.c :
5332 * libspi/atksimpleobject.h :
5337 * at-bridge/Makefile.am
5338 * at-bridge/bridge.c
5341 Added directory "bridge" and contents, and added dependencies
5342 in Makefile.am/configure.in.
5343 Initial checkin of "at-bridge".
5344 This code is a GTK_MODULE which automatically registers
5345 GTK+ apps with the accessibility registry, using an object
5346 reference to the root ATK object.
5348 2001-08-10 Mark McLoughlin <mark@skynet.ie>
5350 * po/Makefile.in.in: Remove. Again. If this
5351 doesn't get autogenerated - you need to update
5354 2001-08-07 Mark McLoughlin <mark@skynet.ie>
5356 * po/Makefile.in.in: Add. Again.
5358 2001-07-31 Bill Haneman <bill.haneman@sun.com>
5360 * libspi/accessible.c : added support for 'description' property.
5361 * libspi/accessible.c
5363 * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
5364 (since the two are now equivalent in libbonobo)
5372 * idl/Value.idl : changed these 'secondary' interfaces to inherit from
5373 Bonobo::Unknown as does Accessibility::Accessible.
5374 * idl/StreamableContent.idl : as above, and replaced internal InputStream
5375 interface with Bonobo::Stream, since it was redundant with it.
5376 (The Stream returned by a StreamableContext object is expected to
5377 implement only a subset of Bonobo::Stream)
5379 2001-07-28 Anders Carlsson <andersca@gnome.org>
5381 * libspi/accessible.c (accessible_object_finalize): Change
5382 g_free to g_object_unref since the AtkObject is a GObject.
5384 2001-07-30 Bill Haneman <bill.haneman@sun.com>
5386 * idl/Accessibility.idl: add new IDL files
5389 * idl/Action.idl: Definitions of actionable UI object
5390 * idl/Component.idl: Definitions of UI component geometry, etc.
5391 * idl/Hyperlink.idl: Defs of hyperlink behavior
5392 * idl/Image.idl: Def of accessible image
5393 * idl/Selection.idl: Definition of UI object with selectable children
5394 * idl/StreamableContent.idl: Definition of UI object with streamable backing data
5395 * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
5396 * idl/Text.idl: Interface defs for UI elements with complex textual content
5397 * idl/Value.idl: Definition of UI element that is a value controller or display
5399 2001-07-27 Michael Meeks <michael@ximian.com>
5401 * po/Makefile.in.in: remove autogenerated file from CVS.
5403 * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
5406 * idl/Registry.idl: include guard.
5408 * idl/Accessibility.idl: Add, and include all the other IDL
5411 * idl/*.idl: remove mass of pragmas etc.
5413 2001-07-26 Michael Meeks <michael@ximian.com>
5415 * registryd/Makefile.am (registryd_SOURCES): remove
5418 2001-07-27 Mark McLoughlin <mark@skynet.ie>
5420 * libspi/.cvsignore, registryd/.cvsignore,
5421 test/.cvsignore: updated.
5423 * po/Makefile.in.in: gettext update.
5425 2001-07-25 Bill Haneman <bill.haneman@sun.com>
5427 * initial CVS checkin
5429 2001-06-29 Michael Meeks <michael@ximian.com>
5431 * configure.in: add AM_CONFIG_HEADER to gen config.h