Added new, more efficient screen review API to AccessibleText.
[platform/core/uifw/at-spi2-atk.git] / ChangeLog
1 2002-12-17  Bill Haneman <bill.haneman@sun.com
2
3         Fix for 100944, [API addition approved by Gman and murrayc].
4         
5         * NEWS: updated.
6         
7         * configure.in:
8         Revved to 1.1.8.
9
10         * idl/Accessibility_Text.idl:
11         (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
12         (Text::getRangeExtents): New method for efficient 
13         bounds query of a text range.
14         (Text::getBoundedRanges): New method for efficient
15         clipping of text to bounding boxes.
16         (unImplemented7, unImplemented8): 
17         Removed these padding methods to preserve bincompat.
18
19         * libspi/text.c:
20         (impl_getRangeExtents): implementation of new IDL.
21         (impl_getBoundedRanges): implementation of new IDL.
22         (SpiTextRect): Internal use struct.
23         (_spi_text_rect_union): internal method, calculates union of two
24         SpiTextRect bounding rects.
25         (_spi_text_range_seq_from_gslist): internal method, allows us
26         to build our sequence efficiently as a gslist then convert it
27         to a CORBA seq.
28         (_spi_bounds_contain): internal method, determines whether
29         a text character is "in" or "out" of a clip rect according to
30         values of TEXT_CLIP_TYPE.
31         (spi_text_class_init): Initialize the new methods in the epv.
32         
33         * cspi/spi.h:
34         (AccessibleTextClipType): New enum used by screen review api.
35         (AccessibleTextRange): New struct used by screen review api.
36         (AccessibleText_getRangeExtents): 
37         cspi binding for Accessibility_Text_getRangeExtents.
38         (AccessibleText_getBoundedRanges):
39         cspi binding for Accessibility_Text_getBoundedRanges.
40         (AccessibleTextRange_freeRanges): convenience method.
41         
42         * cspi/spi_text.c:
43         (AccessibleText_getRangeExtents): 
44         cspi binding for Accessibility_Text_getRangeExtents.
45         (AccessibleText_getBoundedRanges):
46         cspi binding for Accessibility_Text_getBoundedRanges.
47         (AccessibleTextRange_freeRanges): convenience method.
48         (get_accessible_text_clip_type): internal conversion method.
49         (get_accessible_text_ranges_from_range_seq): internal conversion method.
50
51         * registryd/deviceeventcontroller.c:
52         (spi_dec_mouse_check):
53         Improved behavior for mouse:abs events 
54         [same granularity as mouse:rel events, and no
55         events when mouse is idle].     
56         
57 2002-12-16  Michael Meeks  <michael@ximian.com>
58
59         * cspi/spi_accessible.c (spi_state_to_corba): rename.
60
61         * libspi/stateset.c (state_spi_to_atk): split out
62         ( fix several remote array bounds nasties )
63         (spi_atk_state_set_from_sequence, impl_contains, impl_add),
64         (impl_remove): make safe from array bounds issues.
65         (spi_atk_state_from_spi_state): impl.
66
67         * libspi/stateset.h (spi_state_set_cache_is_empty): 
68         add a set of wrapper defines to get layering right.
69
70         * cspi/spi_accessible.c: update state set stuff to
71         use it.
72
73 2002-12-14  Michael Meeks  <michael@ximian.com>
74
75         * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
76         to avoid 2 roundtrips to the registry per key event
77         (spi_atk_bridge_key_listener): upd.
78         (deregister_application): release the dec.
79
80         * registryd/registry.c (notify_listeners_cb):
81         bin lots of re-enterant complexity - we no longer
82         do a round-trip bonobo ref here, ensure that a single
83         listener's exception failure won't poison all other
84         notifications.
85         (impl_registry_notify_event): bin obvious memory leak.
86
87 2002-12-13  Michael Meeks  <michael@ximian.com>
88
89         * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
90         init the ev so the error is meaningful.
91         (spi_atk_bridge_key_listener): ditto.
92
93         * cspi/spi_main.c (cspi_ev): init the ev so we start
94         with a clean slate, otherwise the first exception
95         kills us completely.
96
97         * cspi/spi_text.c (get_accessible_text_boundary_type): 
98         add a fallthrough for no warnings.
99
100         * cspi/spi_registry.c: prune unused warnings.
101
102         * cspi/spi_main.c (cspi_object_take): fix
103         mind-blowing brokenness ( by watching the compile
104         warnings )
105
106         * cspi/spi_accessible.c (Accessible_getStateSet):
107         re-impl. to use an AtkStateSet.
108         (spi_state_type_from_accessible_state),
109         (init_state_table): bin these.
110
111         * libspi/stateset.c (spi_atk_state_set_from_sequence):
112         split out from
113         (atk_state_set_from_accessibility_state_set): here.
114
115         * cspi/spi_accessible.c (spi_state_to_atk): impl.
116         (AccessibleStateSet_contains, AccessibleStateSet_ref),
117         (AccessibleStateSet_unref, AccessibleStateSet_contains),
118         (AccessibleStateSet_add, AccessibleStateSet_remove),
119         (AccessibleStateSet_equals, AccessibleStateSet_compare),
120         (AccessibleStateSet_isEmpty): re-write to use a local
121         AtkStateSet object.
122
123 2002-12-13  Bill Haneman <bill.haneman@sun.com>
124
125         * configure.in: Revved to 1.1.7 (new keymask vals).
126
127 2002-12-10  Bill Haneman <bill.haneman@sun.com>
128
129         * libspi/keymasks.h:
130         Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
131
132 2002-12-10  Padraig O'Briain  <padraig.obriain@sun.com>
133
134         * cspi/spi_event.c 
135         (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent() 
136         to compare two CORBA_TypeCodes.
137         (cspi_internal_event_add): Silence warning from FORTE compiler.
138
139         * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to 
140         avoid implicit declaration of functions.
141         
142 2002-12-09  Padraig O'Briain  <padraig.obriain@sun.com>
143
144         * atk-bridge/bridge.c:
145         (spi_atk_bridge_init_event_type_consts): Store signal id for
146         active-descendant-changed signal.
147         (spi_atk_register_event_listeners): Add signal listener for
148         active-descendant-changed signal,
149         (spi_atk_bridge_signal_listener): Move code in function 
150         spi_atk-signal_emit_event() into this function.
151         Add support for active-descendant-changed
152         Update support for child-changed signal.
153         (spi_bridge_window_event_listener): Silence warning.
154
155         * libspi/spi_private.[ch]:
156         (spi_init_any_object): Change second parameter from CORBA_Object to
157         CORBA_Object*.
158         Omit call to CORBA_Object_duplicate(). 
159         Set CORBA_any's _value to CORBA_Object*.        
160
161 2002-12-06  Bill Haneman  <bill.haneman@sun.com>
162
163         * configure.in:
164         Revved to 1.1.6.
165         
166         * cspi/spi.h: 
167         (AccessibleEvent_ref, AccessibleEvent_unref):
168         New methods, for persisting an event outside the emission context.
169         Must be used if the new accessor methods are to be called
170         outside of the event listener's callback.
171
172         * cspi/bonobo/cspi-bonobo.c:
173         (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
174         as second parameter instead of NULL, so we can call
175         cspi_check_ev afterwards.
176         
177         * cspi/spi_main.c:
178         (cspi_object_take): New internal method, 
179         converts a CORBA_Object reference to a hard ref on
180         an Accessible if possible, returning NULL if the object
181         reference is invalid or an Accessible * otherwise.
182
183         * cspi/spi_event.c:
184         (AccessibleEvent_ref): 
185         Increment the event's internal private refcount, and 
186         add the event's internal struct to an internal cache 
187         if it's not already there.
188         (AccessibleEvent_unref): 
189         Decrement the event's refcount and remove it from
190         the cspi event cache if refcount==0.
191         (cspi_event_compare): New private method.
192         Compares two event structs via their ids. Used 
193         for queue lookup.
194         (cspi_internal_event_lookup): New private method.
195         (cspi_internal_event_check): New private method,
196         a 0-order sanity check for events to make sure their
197         private data is intact.
198         (cspi_internal_event_add, cspi_internal_event_remove):
199         New private methods for managiing the event cache.
200
201         * cspi/bonobo/cspi-bonobo-listener.c:
202         (cspi_event):
203         Initialize the new private data elements (id, magic, ref_count).
204         
205         * atk-bridge/bridge.c:
206         (spi_atk_bridge_signal_listener):
207         Fixed bug #100530, passing wrong params to emission func.
208
209         * registryd/deviceeventcontroller.c:
210         (spi_dec_button_update_and_emit): 
211         Fixed type in mask bit operations; fix for #99799.
212         
213 2002-12-02  Bill Haneman  <bill.haneman@sun.com>
214
215         Removed some of the more dangerous workarounds from
216         previous commit; they are only needed by GOK, which
217         in reality should be using another method to accomplish
218         the goals.  So on reconsideration some of the workarounds
219         need to be reverted:
220         
221         * registryd/deviceeventcontroller.c:
222         (spi_keycodes_contain, spi_dec_init_keycode_list): 
223         Removed these methods, used only by a nasty hack to try
224         and detect whether a key synthesis should be allowed
225         to reset the XKB latch state or not. This code was only
226         required to work around an interaction between GOK,
227         button events, and XKB.
228         (impl_generate_key_event):
229         Removed hack at end of key generation that tried to
230         "do the right thing" if XKB latch keys were generated
231         in the midst of button press/release pairs.  
232
233         * configure.in:
234         Added a check for HAVE_XINPUT.  Not normally used yet.
235
236 2002-11-25  Bill Haneman  <bill.haneman@sun.com>
237
238         Workarounds and fixes for mouse event/XKB interaction.
239         
240         * registryd/deviceeventcontroller.c:
241         (spi_keycodes_contain, spi_dec_init_keycode_list): 
242         New internal methods.
243         (spi_dec_set_unlatch_pending):
244         Split the method that tells XKB to expect an
245         unlatch (and revert it) out of the rest of the
246         event handling code.  This method is called by the
247         two mouse event handlers (the poll and the filter).
248         (spi_dec_update_and_emit, spi_dec_mouse_check): 
249         New methods split from spi_dec_poll_mouse_moved.
250         The second one is now called from inside the filterFn
251         when an XKB delatch event is received, to determine 
252         whether to revert the delatch or not.
253         (spi_poll_mouse_moved): Refactor; also we can now
254         properly handle the case where multiple button states
255         have changed between polling cycles and we didn't get
256         notified due to another client's grab.
257         (global_filter_fn): 
258         Synchronize the server while handling an XKB notification.
259         Ugly, but apparently necessary to avoid nasty races.
260         Check the mouse state on receipt of an XKB latch change,
261         to decide whether to revert the latch or not. (Latches are
262         reverted if there is an immediately preceding mouse button
263         event that a client has consumed, in which case we don't want
264         the user to see the side-effect of the event).
265         (spi_device_event_controller_forward_mouse_event):
266         Check for modifier events and fire before resetting mouse_mask_state,
267         prevents losing modifier events.
268
269         (impl_generate_keyboard_event):
270         If we've just generated a keyboard event for a non-shift key,
271         we don't want to revert the pending XKB latch. 
272         Otherwise, check the modifier state (via a call to 
273         spi_dev_mouse_check) and set the relatch mask to 
274         that state before returning.
275         
276 2002-11-24  Bill Haneman  <bill.haneman@sun.com>
277
278         * NEWS: 
279         Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
280         retagged).
281         
282         * atk-bridge/bridge.c:
283         (spi_atk_register_event_listeners):
284         Don't re-register for ATK events if the registry has died
285         and the app needs to re-register; the ATK listeners are in
286         process and doing so will cause duplicate emission.
287
288         * registryd/deviceeventcontroller.c:
289         (spi_poll_mouse_moved):
290         Reformat the source, detect and emit multiple button-change
291         events (i.e. if multiple buttons have changed between poll
292         intervals).
293         Add code to detect mouse-down events even when the pointer
294         is grabbed; workaround for GOK bug 98420.
295         (spi_controller_register_with_devices):
296         Call XTestGrabControl with 'impervious' flag set to True,
297         allows us to synthesize events and query the pointer even during
298         an active grab by another client.
299         (spi_device_event_controller_forward_mouse_event):
300         Set the mouse_mask_state to the mouse_button_state from
301         the intercepted event, to synchronize the grab listener with
302         the poll state.
303         
304 2002-11-20  Bill Haneman  <bill.haneman@sun.com>
305
306         * cspi/spi_accessible.c:
307         (AccessibleRole_getName):
308         Added necessary strings for making this (deprecated) 
309         method work with the new role types. 
310         (init_role_table, role_table):
311         Added definition of SPI_ROLE_APPLICATION.
312
313         * libspi/spi-roletypes.h:
314         Added SPI_ROLE_APPLICATION.
315
316         * idl/Accessibility_Role.idl:
317         Added ROLE_APPLICATION. 
318
319         * docs/reference/cspi/at-spi-cspi-decl.txt:
320         Added SPI_ROLE_APPLICATION to docs.
321
322 2002-11-20  Padraig O'Briain  <padraig.obriain@sun.com>
323
324         * cspi/spi_accessible.c
325         (cspi_init_role_table): Do not write beyond end of role_table.
326         (Accessible_getRole): Use correct type for value returned by
327         Accessibility_Accessible_getRole().
328
329         * libspi/accessible.c (spi_init_role_lookup_table): Do not write
330         beyond end of role_table. (This fixes bug #98269)
331
332         * libspi/application.c: Add include file spi-private.h for 
333         definition of spi_init_any_nil.
334
335 2002-11-19 Bill Haneman <bill.haneman@sun.com>
336
337         FIX for bug 99024.
338         
339         * libspi/spi-private.h:
340         Added DGB() macro, and extern int _dbg declaration.
341         
342         * registryd/registry.c:
343         (definitions) storage for _dbg.
344         (spi_registry_init):
345         Get environment variable "AT_SPI_DEBUG".
346         (spi_registry_set_debug):
347         New method, to initialize _dbg value.
348         (spi_listener_struct_new, spi_registry_object_finalize):
349         (notify_listeners_cb):
350         Changed fprintfs to use DBG and g_warning().
351
352         * registryd/deviceeventcontroller.c:
353         (_deregister_keygrab, spi_controller_register_device_listener):
354         Changed debug/warning messages to use DBG macro.
355
356         * libspi/listener.c:
357         (impl_notify_event):
358         Changed warning messages to use DBG macro and g_warning().
359
360         * atk-bridge/bridge.c:
361         (atk_bridge_init, spi_atk_bridge_get_registry):
362         (spi_atk_bridge_exit_func):
363         (spi_atk_bridge_property_event_listener):
364         Changed status, warning, and error messages to use
365         g_warning, g_message, and DBG macros.
366
367         (atk_bridge_init):
368         Read the state of the AT_SPI_DEBUG environment variable
369         and set a local '_dbg' accordingly.
370         
371 2002-11-19 Bill Haneman <bill.haneman@sun.com>
372
373         FIXES for 98836, 98842, other bugs.
374         
375         * configure.in:
376         Revved to 1.1.4, interface-age=4, binary-age=4.
377
378         * registryd/deviceeventcontroller.c:
379         (statics):
380         Fixed crasher bug in last_mouse_pos initialization.
381
382         * registryd/registry.c:
383         (desktop_add_application, desktop_remove_application):
384         Added (and then commented out) some support for
385         object context marshalling. [TODO]
386
387         * atk-bridge/bridge.c:
388         (spi_atk_bridge_event_context_create):
389         Commented out object context creation until it can
390         be properly tested and debugged.
391
392         * registryd/registry.c:
393         (impl_registry_notify_event):
394         Fixed crasher bug, we were calling 
395         spi_re_entrant_list_foreach () with an empty list.
396
397 2002-11-18  Bill Haneman <bill.haneman@sun.com>
398         
399         * idl/Accessibility_Action.idl:
400         * idl/Accessibility_Component.idl:
401         * idl/Accessibility_Desktop.idl:
402         * idl/Accessibility_Event.idl:
403         * idl/Accessibility_Hyperlink.idl:
404         * idl/Accessibility_Image.idl:
405         * idl/Accessibility_Relation.idl:
406         * idl/Accessibility_Selection.idl:
407         * idl/Accessibility_State.idl:
408         * idl/Accessibility_Value.idl:
409         Updated unimplemented slot count to minimum of
410         four for all interfaces, for ABI freeze. 
411
412         * idl/Accessibility_EditableText.idl:
413         * idl/Accessibility_Text.idl:
414         Updated unimplemented slot count to six
415         for ABI freeze. 
416         
417         * idl/Accessibility_Registry.idl:
418         Updated unimplemented slot count to six
419         (also for DeviceEventController), 
420         for ABI freeze. 
421
422         * idl/Accessibility_Table.idl:
423         Updated unimplemented slot count to eight,
424         for ABI freeze. 
425
426         * idl/Accessibility_Event.idl:
427         Added CORBA_any "any_data" member to Event struct.
428
429         * idl/Accessibility_Event.idl:
430         Added CORBA_any "any_data" member to Event struct.
431
432         * atk-bridge/bridge.c:
433         (statics):
434         atk_signal_text_changed, atk_signal_child_changed,
435         signal ids queried from gtype system.
436         (AtkBridgeEventContextType): New enum.
437         (AtkBridgeEventContextData): New struct.
438         (AtkBridgeEventContext): New struct.
439         (atk_bridge_init_event_type_consts):
440         New method, initializes type contants for comparison 
441         prior to emit_eventv.
442         (atk_bridge_event_context_init): New method,
443         initializes a CORBA_any from an AtkBridgeEventContext.
444         (atk_bridge_focus_tracker): Call spi_init_any_nil to
445         initialize the event.any_data struct.
446         (spi_atk_bridge_event_context_create): New method,
447         creates an AtkBridgeEventContext from signal/event info.
448         (spi_atk_bridge_event_context_free): New method.
449         (spi_atk_emit_eventv): Changed to take an 
450         AtkBridgeEventContext parameter. We now initialize
451         the event.any_data member prior to notifying the 
452         Registry, via the AtkBridgeEventContext.
453         (spi_atk_bridge_property_event_listener):
454         (spi_atk_bridge_state_event_listener):
455         Match emit_eventv signature.
456         (spi_atk_bridge_object_event_listener):
457         Match emit_eventv signature, and create an
458         event context from the event details.
459         Free the event context afterwards.
460         (spi_atk_bridge_window_event_listener):
461         Create an event context, pass it to the
462         emit_eventv call.
463         
464         * cspi/spi_event.c:
465         (AccessibleEvent_getContextString):
466         (AccessibleEvent_getContextObject):
467         New methods, allow query of AccessibleEvent objects
468         for more context details (via the "any_data" member 
469         of the Event struct, above).
470         
471         * cspi/spi.h:
472         Definitions for AccessibleEvent_getContextString
473         and AccessibleEvent_getContextObject.
474
475         * cspi/spi_listener.h:
476         (InternalEvent): New struct.
477
478         * cspi/spi_event.c:
479         (AccessibleEvent_getContextString):
480         (AccessibleEvent_getContextObject):
481         Implementations of new methods, for obtaining
482         additional context information from some event types.
483
484         * cspi/spi_registry.c:
485         (SPI_registerGlobalEventListener):
486         Added mention of active-descendant-changed event in docs.
487
488         * cspi/cspi-bonobo-listener.c:
489         (cspi_event):
490         Marshal the any into the AccessibleEvent via
491         InternalEvent.
492         
493         * libspi/spi-private.h:
494         #include <orbit/orbit.h>
495         (spi_init_any_nil):
496         (spi_init_any_string):
497         (spi_init_any_object):
498         New convenience function declarations.
499
500         * libspi/util.c:
501         (spi_init_any_nil):
502         (spi_init_any_string):
503         (spi_init_any_object):
504         New convenience function implementations.
505
506         * registryd/deviceeventcontroller.c:
507         (spi_poll_dec_mouse_moved):
508         (spi_device_event_controller_forward_mous_event):
509         Initialize any_data member of event.
510         (spi_deregister_controller_device_listener):
511         Fix incorrect param pass which was preventing deregistration.
512
513         * registryd/registry.c:
514         (desktop_add_application):
515         (desktop_remove_application):
516         Add object data to event's any_data before dispatch.
517         (parse_event_type):
518         Fix for error messages from GAIL.
519         
520         * test/event-listener-test.c:
521         Test new ContextString and "any_data" API:
522         (report_text_event): New method query and output context string.
523         (main): register a new text listener with report_text_event
524         callback.
525
526 2002-11-19  Darren Kenny  <darren.kenny@sun.com>
527
528         Fixes for bugs 98127 and 97914.
529         * cspi/spi-roletypes.h:
530         Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
531         SPI_ROLE_RULER
532         * cspi/spi-statetypes.h:
533         Added SPI_STATE_MANAGES_DESCENDANTS
534         * cspi/spi.h:
535         Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
536         SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
537         * cspi/spi_accessible.c:
538         Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
539         Added mapping from SPI_STATE_MANAGES_DESCENDANTS to 
540         Accessibility_STATE_MANAGES_DESCENDANTS
541         * libspi/accessible.c:
542         Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
543         Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} 
544         As requested by Bill, I also cleaned up the alignment.
545         * libspi/relation.c:
546         Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
547         EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
548         * libspi/stateset.c:
549         Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
550         Accessibility_STATE_MANAGES_DESCENDANTS
551         * docs/reference/cspi/tmpl/spi_accessible.sgml:
552         Document changes reflecting modifications to roles.
553         * docs/reference/cspi/tmpl/spi_relation.sgml:
554         Document changes reflecting modifications to relations.
555         * docs/reference/cspi/tmpl/spi_stateset.sgml:
556         Document changes reflecting modifications to states.
557
558 2002-11-17  Bill Haneman <bill.haneman@sun.com>
559
560         * configure.in:
561         Revved to 1.1.3, interface-age=3, binary-age=3.
562         Added REBUILD macro.
563
564         * test/Makefile.am:
565         Removed accessx-gui from the tests, since we have a nice
566         keyboard accessibility capplet now :-)
567
568         * test/keysynth-demo.c:
569         (increment_scan): removed do-nothing default: case,
570         silences warning.
571
572         * test/visual-bell.c:
573         (main) : removed do-nothing default: case, 
574         silences warning.
575
576         * cspi/spi_action.c:
577         (AccessibleAction_getKeyBinding_): 
578         Documented keybinding string format.
579         FIX for bug 97916.
580
581         * cspi/spi_text.c:
582         (AccessibleText_getAttributes):
583         Documented the text attribute string format.
584         It's changed to use semicolon delimiters also,
585         to prevent clashes with CSS attributes, but the old
586         trick of looking for ", " strings will still work
587         (as unreliably as ever).  Fix for bug related to 97916.
588
589         * cspi/spi_event.c:
590         Include <cspi/bonobo/cspi-bonobo-listener.h>
591         Fixes build warning.
592         (SPI_freeAccessibleKeySet):
593         (AccessibleKeystrokeListener_addCallback):
594         (AccessibleKeystrokeListener_removeCallback):
595         Modify to use AccessibleDeviceListener API internally,
596         instead of AccessibleKeystrokeListener.
597         
598         * idl/Accessibility_Event.idl:
599         Added two more empty slots to EventListener (for a total of four).
600
601         * idl/Accessibility_Accessible.idl:
602         Added four empty slots to Accessible interface.
603
604 2002-11-15  Bill Haneman <bill.haneman@sun.com>
605
606         * idl/Accessibility_Registry.idl:
607         (KeyEventType, EventType):
608         Marked KeyEventType as deprecated; it duplicates
609         functionality of EventType, which has been extended to
610         include Mouse-button events.
611         (KeyEventTypeSeq): defined in terms of EventType.
612         (registerDeviceEventListener, deregisterDeviceEventListener):
613         New methods, for managing listeners to device events,
614         which potentially may consume them.     
615         
616         * cspi/spi-impl.h:
617         Added definition for AccessibleDeviceListener.
618
619         * cspi/spi-listener.h:
620         (enum AccessibleDeviceEventType):
621         Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
622         Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
623         for backwards compat.
624         (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
625         and typedef'd AccessibleKeystroke to it for back-compat.
626         (AccessibleDeviceListenerCB):
627         New function prototype typedef.
628
629         * cspi/spi.h:
630         (AccessibleDeviceEventMask): New typedef.
631         (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
632         (AccessibleKeyMaskType): 
633         Set equivalent to AccessibleModifierMaskType for back-compat.   
634         (SPI_createAccessibleKeystrokeListener):
635         (AccessibleKeystrokeListener_unref):
636         Deprecated in favor of equivalent (better-named) new API below..
637         keystroke listeners are like all device listeners.
638         (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
639         New API names for old features :-).
640         (AccessibleDeviceListener_addCallback):
641         (AccessibleDeviceListener_removeCallback): 
642         (SPI_registerDeviceEventListener): 
643         (SPI_deregisterDeviceEventListener): 
644         New methods.
645         
646         * cspi/spi_event.c:
647         (SPI_createAccessibleKeystrokeListener):
648         Use new preferred API, cspi_device_listener_new() and
649         cspi_device_listener_add_cb().
650         (AccessibleKeystrokeListener_removeCallback):
651         Use new preferred API, cspi_device_listener_remove_cb().
652         (AccessibleKeystrokeListener_unref):
653         Use new preferred API, cspi_device_listener_unref().
654         (SPI_createAccessibleDeviceListener):
655         (AccessibleDeviceListener_addCallback):
656         (AccessibleDeviceListener_removeCallback):
657         Implementation of new API.
658
659         * cspi/spi_registry.c:
660         (SPI_registerDeviceEventListener):
661         (SPI_deregisterDeviceEventListener):
662         Implementation of new API.  Fixed memory leak and removed need to
663         allocate EventTypeSeq (thanks Michael for catching this).
664         Squashed a wayward CORBA_exception_free that shouldn't get called.
665
666         * cspi/bonobo/cspi-bonobo-listener.c:
667         (EventHandler):
668         Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
669         (cspi_key_event): renamed to cspi_device_event().
670         Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
671         Extended to handle mouse button events as well as key events.
672         (CSpiKeystrokeListener):
673         Class superceded by CSpiDeviceListener.
674         (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
675         These internal APIs changed to "*device_listener" from "*keystroke_listener".
676
677         * cspi/bonobo/cspi-bonobo-listener.h:
678         (CSpiKeystrokeListener):
679         Class superceded by CSpiDeviceListener.
680         (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
681         These internal APIs changed to "*device_listener" from "*keystroke_listener".
682
683         * libspi/Makefile.am:
684         Replaced keystrokelistener.h and keystrokelistener.c
685         with devicelistener.h and devicelistener.c; keystrokelisener.h
686         stub retained for back-compat.
687
688         * libspi/keystrokelistener.c:
689         Removed file.
690
691         * libspi/libspi.h:
692         Replaced inclusion of keystrokelistener.h with devicelistener.h.        
693
694         * registryd/deviceeventcontroller.c:
695         (DEControllerListener): Added Accessibility_EventTypeSeq member.
696         (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
697         (DEControllerPrivateData): Added xkb settings data.
698         (spi_dec_poll_mouse_moved): Changed to dispatch device events for
699         button release events (which can't be captured via XGrabButton).
700         Don't dispatch via the 'normal' event mechanism if the device event was
701         consumed.
702         (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
703         Handle the typeseq data in its new location (see above).
704         (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
705         New methods, for "generic" device listeners.
706         (spi_controller_register_device_listener):
707         Now handle mouse event listeners as well as key listeners.
708         (spi_controller_notify_mouselisteners):
709         New internal method.
710         (spi_device_event_controller_forward_mouse_event):
711         Now we notify mouse device listeners as well as generating the
712         non-consumable "mouse:" events.  
713         (global_filter_fn):
714         We must check and restore the XKB
715         modifier map if we consume the event, since the act of triggering
716         a mouse event will normally reset the XKB latch.  This is required for 
717         instance by GOK.
718         (spi_controller_register_with_devices):
719         Load the XKB settings when registering, and register for XKB 
720         state notify events. 
721         (spi_key_eventtype_seq_contains_event):
722         Renamed spi_eventtype_seq_contains_event, since it's used
723         internally for all device event types now.
724         (spi_key_event_matches_listener):
725         Uses spi_eventtype_seq_contains_event now.
726         (spi_device_event_controller_object_finalize):
727         Free the private data and the XkbKeyboard struct.
728         (impl_register_device_listener, impl_deregister_device_listener):
729         Implementation of new IDL.
730         (spi_deregister_controller_device_listener):
731         New internal method.
732         (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
733         More efficient implementation, we don't have to create a new
734         XkbControls structure every time we query.
735         (spi_device_event_controller_class_init):
736         Initialize the epv entries for the new IDL.  Assign the 
737         "spi-dec-private" quark.
738         (spi_device_event_controller_init):
739         Initialize the private data.
740         (spi_device_event_controller_forward_key_event):
741         Removed a bogus CORBA_exception_free() call.
742         
743         * registryd/deviceeventcontroller.h:
744         Replaced inclusion of keystrokelistener.h with
745         devicelistener.h.
746
747         * test/event-listener-test.c:
748         (report_mouse_event):
749         New method.
750         (main):
751         Added mouse-event device listener.
752
753         * test/test-simple.c:
754         (create_test_window):
755         Fixed regression (we were instantiating a GtkRange,
756         which is now an abstract class).  Also fixed to match
757         existing AtkRole names, this seems to have changed in ATK
758         awhile ago; too late now I think, and the new
759         mechanism is at least elegant and consistent with the
760         glib enum "nick" APIs.  
761
762 2002-11-15  Darren Kenny  <darren.kenny@sun.com>
763
764         * idl/Accessibility_Relation.idl:
765         add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
766         RELATION_EMBEDS,RELATION_EMBEDDED_BY
767         * idl/Accessibility_Role.idl:
768         add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
769         * idl/Accessibility_State.idl:
770         add STATE_MANAGES_DESCENDANTS
771         * test/event-listener-test.c:
772         Added a listener for active-descendant events.
773
774 2002-11-15  Padraig O'Briain  <padraig.obriain@sun.com>
775
776         * atk-bridge/bridge.c
777         (atk_bridge_init): If application is Bonobo component wait until top
778         level is added before registering
779         (spi_atk_bridge_do_registration): New function which contains code, 
780         formerly in atk_bridge_init, to do application registration.
781         (spi_atk_bridge_toplevel_added): Signal called when top level
782         added to Bonobo component
783
784         This fixes bug #83134.
785
786 2002-10-23  Vitaly Tishkov  <tvv@sparc.spb.su>
787
788         * registryd/deviceeventcontroller.c
789         Fixed compilation error caused by calling gettimeofday() 
790         with 1 parameter
791
792 2002-10-18  Bill Haneman  <bill.haneman@sun.com>
793
794         BUGFIX for #95828.
795
796         * acconfig.h:
797         Added template for HAVE_XKB.
798         
799         * configure.in:
800         Changes to check for XKB, and to set the HAVE_XKB #define if it 
801         is available.
802         
803         * libspi/listener.c:
804         ()impl_notify_event): Make failure to get event source name
805         nonfatal.
806
807         * registryd/deviceeventcontroller.c:
808         (#include): include X11/XKBlib.h.
809         (DEControllerPrivateData) : New struct.
810         (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) : 
811         New methods.
812         (dec_synth_keycode_press) (dec_synth_keycode_release):
813         New methods; split the key synthesis code into these methods.
814         They check XKB settings before determining the "time" values to
815         pass to Xtest; this fixes bug #95828.
816         (impl_generate_keyboard_event): Changed to use methods above,
817         instead of callng Xtest directly.
818         (spi_device_event_controller_init): Initialize new privae struct s
819         above.
820         (spi_device_event_controllr_object_finalize):
821         Free the (new) private data.
822
823         * registryd/deviceeventcontroller.h:
824         Add new gpointer to end of struct data.
825
826 2002-10-16  Bill Haneman  <bill.haneman@sun.com>
827
828         * configure.in:
829         Incremented revision to 1.1.2, SONAME is still '.so', library
830         extensions are ".so.0.0.2".
831
832         * registryd/deviceeventcontroller.c:
833         FIXES FOR #93592 and #95940.
834         (statics):  renamed mouse_button_state to mouse_mask_state, 
835         added key_modifier_mask.
836         (spi_dec_poll_mouse_moved): 
837         Added key modifier checks, and emit "keyboard:modifiers"
838         events when the key modifiers currently in use change.
839         Also generate "mouse:abs" events periodically, even if the mouse
840         is stationary (should we?).
841         Alternatively we could generate "mouse:abs" events for either all
842         mouse movements, or every 'nth' mouse movement, or at the
843         beginning and end of every "active" mouse period.
844         
845         * test/event-listener-test.c:
846         (main): Added listener for "keyboard:modifiers" events.
847         
848 2002-10-15  Bill Haneman  <bill.haneman@sun.com>
849
850         * libspi/keymasks.h:
851         Added key mask #defines for mouse buttons; e.g.
852         SPI_KEYMASK_BUTTON1, etc.
853
854         * configure.in:
855         Incremented dependency on ATK to version 1.1.0. (This dependency
856         is probably premature but will soon be real enough).
857
858 2002-10-11  Padraig O'Briain  <padraig.obriain@sun.com>
859
860         * libspi/hyperlink.[ch]
861         (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
862         (get_hyperlink_from_servant): Check object is AtkHyperlink not 
863         AtkObject.
864
865         * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
866         AtkObject.
867
868         Fixes bug #95517.
869
870 2002-10-10  Padraig O'Briain  <padraig.obriain@sun.com>
871
872         * registryd/deviceeventcontroller.c
873         (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
874         events to be ignored.
875         (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
876         keyboard_mode so that XAllowEvents() can be called.
877
878         Fixes bug #93658.
879
880 2002-10-08  Padraig O'Briain  <padraig.obriain@sun.com>
881
882         * cspi/spi-accessible.c: Correct names of roles returned by
883         AccessibleRole_getName(). Fixes bug #95055.
884
885 2002-10-03  Padraig O'Briain  <padraig.obriain@sun.com>
886
887         * cspi/spi_main.c (report_leaked_ref): Report address of leaked
888         object.
889
890         * registryd/registry.c
891         (desktop_remove_application: Write diagnostic message to stderr for
892         consistency.
893
894         (impl_accessibility_registry_deregister_global_event_listener):
895         Correct size of lists array. This addresses bug #94555).
896
897 2002-09-24  Padraig O'Briain  <padraig.obriain@sun.com>
898
899         * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
900         in some role names.
901
902 2002-09-19  Padraig O'Briain  <padraig.obriain@sun.com>
903
904         * registryd/Makefile: Add CLEANFILES so that .server file is removed
905         on make clean
906
907         * registryd/registry.c (impl_registry_notify_event): Remove
908         unnecessary call to parser_event_type().
909
910         * docs/reference/cspi/tmpl/spi_component.sgml:
911         Add reference to SPI_LAYER_WINDOW.
912
913 2002-09-17  Padraig O'Briain  <padraig.obriain@sun.com>
914
915         * registryd/registry.c
916         (desktop_add_application): Remove leak.
917         (desktop_remove_application): Remove leak.
918         (parser_event_type): Remove leak.
919
920 2002-09-16  Padraig O'Briain  <padraig.obriain@sun.com>
921
922         * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
923         bogus call to CORBA_string_dup(). Also removed unnecessary
924         g_string_dup/g_free calls.
925         
926 2002-09-13  Bill Haneman <bill.haneman@sun.com>
927
928         * registryd/deviceeventcontroller.c:
929         spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
930
931         * test/event-listener-test.c:
932         main: commented out three redundant listeners, to reduce output
933         noise. (They still are potentially useful for testing).
934         
935
936 2002-09-13  Michael Meeks  <michael@ximian.com>
937
938         * Update all the copyrights to include Ximian.
939
940 2002-09-06  Mark McLoughlin  <mark@skynet.ie>
941
942         * cspi/spi.h: add SPI_LAYER_WINDOW.
943
944         * cspi/spi_component.c: (AccessibleComponent_getLayer):
945         add Accessibility_LAYER_WINDOW case.
946
947         * idl/Accessibility_Component.idl: add LAYER_WINDOW.
948
949         * libspi/component.c: (impl_accessibility_component_get_layer):
950         add ATK_LAYER_WINDOW case.
951
952 2002-08-28  Bill Haneman <bill.haneman@sun.com>
953
954         * configure.in: incremented micro version.
955
956         * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
957
958 2002-08-20  Bill Haneman <bill.haneman@sun.com>
959
960         * HACKING: 
961         Clarified and reworded our commit policy.
962
963         * NEWS:
964         Started an API "todo" addition list for 2.2.
965
966         * libspi/text.c:
967         (impl_getSelection):
968         Free char pointer from atk_text_get_selection, which was being leaked.
969
970 2002-08-19  Bill Haneman <bill.haneman@sun.com>
971
972         * AUTHORS: 
973         Small revision to author acknowledgement.
974
975 2002-08-19  Padraig O'Briain  <padraig.obriain@sun.com>
976
977         * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
978         If signal has detail add it to the type of the event.
979         (bug #90838)
980         
981 2002-08-12  Michael Meeks  <michael@ximian.com>
982
983         * test/test-simple.c (global_listener_cb): bin bogosity.
984         (test_keylisteners): disable, still doesn't work reliably,
985         certainly not on my system anyway.
986
987         * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
988         don't leak a reference on the DEC. This round-trip
989         fetching of the DEC per keystroke sucks, it should be
990         cached.
991
992         * cspi/spi-private.h,
993         * cspi/cspi-lowlevel.h,
994         * cspi/bonobo/cspi-bonobo-listener.[ch],
995         * cspi/bonobo/cspi-bonobo.c: get the copyright
996         notices better - there is still a large amount of
997         work in at-spi falsely attributed solely to Sun.
998
999         * cspi/spi_main.c (cspi_object_ref): kill bogus
1000         hash lookup, just increment the ref.
1001         (SPI_freeString): make explicit the fact that we
1002         handle NULL strings just fine.
1003         (report_leaked_ref): obey coding standards.
1004         (cspi_object_hash, cspi_object_equal): kill retval.
1005         (cspi_object_release): only release if not on loan.
1006         (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
1007         (cspi_object_borrow, cspi_object_return): impl.
1008
1009         * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
1010         use cspi_object_borrow / return.
1011
1012 2002-08-12  Darren Kenny  <darren.kenny@sun.com>
1013
1014         * cspi/bonobo/cspi-bonobo-listener.c: 
1015         (cspi_event):
1016         Don't call cspi_oject_new() because this is creating a new Accessible
1017         every single time that an event is fired. This causes ATs like at-poke
1018         to nolonger recognise the source of the event and thus ignore it.
1019         Re-use the object from the cache, ref it and then unref it after the
1020         listeners have been called.
1021
1022 2002-08-06  Darren Kenny  <darren.kenny@sun.com>
1023
1024         * test/event-listener-test.c: 
1025         Added command-line options to disable mouse events (m) and
1026         show usage (h). 
1027
1028 2002-07-31  Padraig O'Briain  <padraig.obriain@sun.com>
1029
1030         * configure.in: Update required versions of ATK, GTK+ and GAIL
1031
1032         * cspi-1.0.pc.in: Add dependency for X include files
1033
1034         * cspi/Makefile.am:
1035         * cspi/bonobo/Makefile.am: 
1036         Add $(X_CFLAGS) so that X include files 
1037         are picked up even if not in standard place (bug #71686)
1038
1039 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
1040
1041         * registryd/deviceeventcontroller.c: fix for 84261
1042         (spi_dec_mouse_moved):
1043         Added test of mouse button mask, so that we can detect mouse
1044         button release.  Unfortunately we can't otherwise detect mouse
1045         button release events without consuming the mouse press event,
1046         because of the way XGrabButton works.  This means that our mouse
1047         release events have a latency dependent on the polling period
1048         while the mouse button is down.  At least in this case we only
1049         have to poll while the button is down, and not at other times.
1050         If the button masks don't match with what the last press event
1051         reported, we report the appropriate button release event.
1052         (spi_dec_ungrab_mouse):
1053         New method (not yet called).
1054         (spi_device_event_controller_forward_mouse_event):
1055         New method, sends mouse press event from GdkFilter.
1056         (spi_dec_init_mouse_listener):
1057         Added code to call XGrabButton, redirecting mouse button events to
1058         the root window and our Gdk event loop.
1059         (global_filter_fn):
1060         Added code to filter mouse button events, and reordered.
1061         
1062         * test/event-listener-test.c:
1063         (main):
1064         Added registration for mouse events of type "mouse:button".
1065
1066 2002-06-25  Bill Haneman  <bill.haneman@sun.com>
1067
1068         * registryd/deviceeventcontroller.c: partial fix for 84261
1069         (spi_dec_poll_mouse_idle):
1070         New method, a timeout which checks to see if the mouse
1071         has moved.
1072         (spi_dec_poll_mouse_moving):
1073         A timeout to be called when mouse motion is underway.
1074         (spi_dec_poll_mouse_moved):
1075         A method which fires an event if the mouse has moved, and reports
1076         whether or not it did so. 
1077         (spi_dec_init_mouse_listener):
1078         A method which sets up the timeouts above.
1079         (spi_device_event_controller_new):
1080         Now calls spi_dec_init_mouse_listener.
1081
1082         * registryd/registry.c:
1083         (spi_registry_init):
1084         Now we initialize the device event controller when the registry is
1085         initialized, instead of waiting until a client has requested a key
1086         event notification; this is because we need the event controller
1087         for mouse events, but the mouse event registration API is a
1088         "registry" call and doesn't explicitly call the 
1089         deviceeventcontroller.
1090         We now report mouse motion events with a 100 ms idle latency and
1091         a 20 ms granularity when motion is in progress.
1092
1093         * test/event-listener-test.c:
1094         (main):
1095         We now register the "detail listener" for events of type 
1096         "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
1097         delivered only for the first mouse event received, and thereafter
1098         "mouse:abs" events are delivered.)
1099
1100         * cspi/spi_registry.c:
1101         DOCS: Documented the above mouse event typestrings.
1102         
1103 2002-06-21  Bill Haneman  <bill.haneman@sun.com>
1104
1105         Happy Summer Solstice...
1106
1107         * registryd/deviceeventcontroller.c: [fix for bug 84100]
1108         (spi_controller_notify_keylisteners):
1109         Changes to remove a listener from the listener list, freeing its
1110         open keygrabs, if a notification to that listener fails.  This
1111         means that although a dead listener can continue to hold a passive
1112         keygrab, a maximum of one dispatch to such a listener can fail
1113         before the listener is removed from the list, thus the keygrab
1114         will be released on the next occurrence.
1115         As part of this fix:
1116         (spi_notify_keylisteners):
1117         Renamed to spi_controller_notify_keylisteners, as the controller
1118         instance must now be passed as an argument.
1119         The copied 'notify' GList is now a list of DEControllerKeyListener
1120         objects, since we need more than just the CORBA reference if a
1121         notify fails and we need to deregister the listener.
1122         (impl_notify_listeners_sync):
1123         (impl_notify_listeners_async):
1124         (spi_device_event_controller_forward_key_event):
1125         Modify use of notify_keylisteners in accordance with above
1126         changes.
1127         (spi_deregister_controller_key_listener):
1128         New method introduced by refactoring, from 
1129         impl_deregister_keystroke_listener.
1130         (impl_deregister_keystroke_listener):
1131         Call spi_deregister_controller_key_listener.
1132         (spi_key_listener_clone):
1133         New method to copy a key listner without doing a 'ref' on the
1134         remote object instance; used to create a notifier list.
1135         (spi_key_listener_data_free):
1136         New method, frees data without unreffing the source.
1137         Used in refactor.
1138         (spi_key_listener_clone_free): new method.
1139         (spi_key_listener_free): 
1140         refactored to call spi_key_listener_data_free.
1141         
1142 2002-06-20  Bill Haneman  <bill.haneman@sun.com>
1143
1144         * registryd/registry.c: [fix for bug 86048]
1145         (notify_listeners_cb):
1146         Clear CORBA system exceptions which occur when notifying
1147         listeners, before returning to the source of the original event,
1148         since the event source doesn't care if the relayed notify failed.
1149         In other words, don't complain to the atk-bridge if the registry
1150         could not notify all its listeners, that's no fault of the
1151         application and thus should not appear to be an error from the
1152         application's perspective.
1153         
1154         * cspi/spi_main.c: [fix for bug 85980]
1155         (cspi_object_ref):
1156         Replaced use of bonobo_object_dup_ref with call to the wrapper
1157         method, csou_dup_ref (); this silences a compiler warning and
1158         provided more portability.
1159         (cspi_registry):
1160         Ping the registry before return, and restart if necessary.
1161
1162         * cspi/bonobo/cspi-bonobo.c:
1163         (cspi_ping):
1164         New internal method.
1165         (cspi_dup_ref):
1166         Fixed this method to return an object reference, as it should have
1167         all along.
1168
1169         * cspi/cspi-lowlevel.h:
1170         Added internal definition for cspi_ping() and fixed 
1171         return type of cspi_dup_ref().
1172         
1173
1174 2002-06-19  Bill Haneman  <bill.haneman@sun.com>
1175
1176         * atk-bridge/bridge.c:  [fix for bug 85305]
1177         (spi_atk_bridge_register_application):
1178         New method where the initial application registry calls have been
1179         moved; it allows an application to re-register in response to
1180         certain error conditions (such as a registry restart, see below).
1181         (atk_bridge_init):
1182         Moved some initialization code to the method
1183         spi_atk_bridge_get_registry, below.
1184         (spi_atk_bridge_get_registry):
1185         New, private accessor function for the Accessibility_Registry
1186         instance.  If the registry has not been started before, or has
1187         died (as detected by failure of a CORBA exception), it is
1188         restarted before return, and spi_atk_bridge_register_application
1189         is called again to register with the new bridge instance.
1190         (spi_atk_emit_eventv):
1191         Set registry_died on error; use spi_atk_bridge_get_registry () to
1192         access the registry.
1193         
1194         * registryd/registry.c:
1195         (impl_accessibility_registry_register_global_event_listener):
1196         Set listener's event_type_quark to etype.minor instead of
1197         etype.major (fix for bug 84856).
1198
1199         * test/event-listener-test.c:
1200         (report_detail_event):
1201         Change the output string so that user/tester can tell that the
1202         'detail listener' was called instead of the 'generic listener'.
1203         
1204 2002-06-18  Bill Haneman  <bill.haneman@sun.com>
1205
1206         Fixes for bugs 84900, 84908, 84897, 84898.
1207
1208         * NEWS: updated.
1209         
1210         * configure.in:
1211         Revved version to 1.1.0 
1212         (reserving the 1.0.X branch for gnome-2-0-0 branch, this
1213         version is going to HEAD which will be used for gnome-2-0-1 and later.)
1214         
1215         * idl/Accessibility_Registry.idl:
1216         (EventListener::notifyEvent):
1217         Removed 'oneway' directive after extensive consulation with
1218         ORBit2 team and others.  This means also that unref() of the event
1219         source can and should be done synchronously after emission, rather
1220         than remotely in the client, after servicing the notify call on
1221         the listener side.
1222
1223         NOTE: This change speeds up listener performance considerably, but
1224         introduces new latency on the application side.  We may want to
1225         add an event queue to the atk-bridge.
1226
1227         * atk-bridge/bridge.c:
1228         (spi_atk_bridge_focus_tracker):
1229         Do a local unref() on the event source after emission.
1230         
1231         * registryd/registry.c:
1232         (desktop_remove_application):
1233         Do an unref() on the event source after emission.
1234         (desktop_add_application):
1235         Do an unref() on the event source after emission.
1236         (notify_listeners_cb):
1237         When relaying an event, don't automatically add the event source
1238         to the local object cache, just CORBA_dup it instead.  Likewise,
1239         if this method reenters, release the ref rather than calling
1240         unref() as well.
1241         (impl_registry_notify_event):
1242         No longer call remote unref() on the event source after dispatch.
1243
1244         * libspi/eventlistener.c:
1245         (impl_accessible_event_notify_event):
1246         Removed remote unref ()
1247         
1248         * cspi/bonobo/cspi-bonobo-listener.c:
1249         (cspi_event):
1250         We now call cspi_object_new() instead of cspi_object_add() on
1251         receipt of an event; thus we only have an implicit object ref
1252         while the cspi_event method is being executed.  If we need to keep
1253         a reference to the object, the listener must call ref() on the
1254         object.  Thus also we don't need to call cspi_object_unref() after
1255         invoking the listener callbacks in this method.
1256         
1257         * cspi/spi_main.c:
1258         (cspi_object_new):
1259         New internal API for creating a new cspi object, without adding it
1260         to the object cache.
1261         (cspi_object_add):
1262         Now uses cspi_object_new() to create the cspi object instance.
1263         (cspi_object_ref):
1264         Now checks to see if the object is in the internal object cache,
1265         and adds it if necessary before incrementing its refcount (note
1266         that new objects are added with a refcount of 1).
1267         (report_leaked_ref):
1268         New method which gives some information on leaked object instances
1269         if leak detection is turned on.
1270
1271         * test/event-listener-test.c:
1272         (timing_test_event):
1273         New method, used for testing event delivery timing for special
1274         events of type "object:test".  It reports elapsed time and
1275         events/sec every 500 events.
1276         (main):
1277         Added a new listener, 'test listener', to check timing of event
1278         receipt as noted above.
1279         (report_event):
1280         Added some timing output here also, reports elapsed time every 100
1281         events.
1282
1283         * test/stress-test.c:
1284         Emit events of type "object:test", for use with "event-listener-test".
1285
1286         * test/test-simple.c:
1287         (global_listener_cb):
1288         Call Accessible_ref() on the event source before calling
1289         validate_accessible, since the validation process does pointer
1290         comparisons on the event source, meaning that the event source
1291         needs to be added to the local object cache first.  Any use of
1292         such pointer comparisons between Accessible objects requires that
1293         the caller hold an explicit reference to those objects.
1294         We also must therefore call Accessible_unref() when leaving this method.
1295
1296 2002-06-13  Bill Haneman  <bill.haneman@sun.com>
1297
1298         * registryd/deviceeventcontroller.c:
1299         (spi_controller_update_key_grabs):
1300         Fix for #84735, subsequent keygrab listeners not informed of
1301         registration failure.
1302
1303         * libspi/base.c:
1304         (spi_base_construct):
1305         Add an assertion on construct, to make sure the GObject passed in
1306         is really a GObject.
1307         (spi_base_init):
1308         Explicitly initialize object->gobj pointer to NULL;
1309
1310         * cspi/bonobo/cspi-bonobo-listener.c:
1311         (cspi_object_add_ref):
1312         New method, can specify whether to dup-ref a bonobo object passed
1313         in if it's newly added to the object cache.
1314         (cspi_object_add):
1315         Now calls cspi_object_add_ref with second param of "FALSE".  This
1316         prevents us from doing a pointless dup-ref followed by
1317         release-unref for all those cases where the object is already in
1318         our object cache (fix for #85205).
1319
1320         * atk-bridge/bridge.c:
1321         (spi_atk_bridge_idle_init):
1322         Removed this method, we don't need to initialize in an idle
1323         handler anymore;
1324         (atk_bridge_init):
1325         Changed to call spi_atk_register_event_listeners directly, not via an
1326         idle handler. (fix for #81139)
1327         (gnome_accessibility_module_shutdown):
1328         Removed conditional around deregistration of listeners, since we
1329         don't use the idle handler and thus have always registered when
1330         shutdown is called.
1331         (spi_init_keystroke_from_atk_key_event):
1332         Changed references to Accessibility_KEY_PRESSED to 
1333         Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
1334         
1335 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
1336
1337         (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
1338         
1339         * configure.in:
1340         Revved to 1.0.1
1341
1342         * test/stress-test.c:
1343         Added file.
1344
1345         (may have been an incomplete commit yesterday?)
1346
1347 2002-06-12  Bill Haneman  <bill.haneman@sun.com>
1348
1349         * test/Makefile.am:
1350         Added target for new stress-test.
1351         
1352         * test/stress-test.c:
1353         New test, sends 1000 focus notifies in quick succession.
1354
1355         * test/key-listener-test.c:
1356         Now we report whether a keylistener registration
1357         request succeeded or failed.
1358
1359         * test/event-listener-test.c:
1360         Uncommented some listeners which are now implemented.
1361
1362
1363 2002-06-06  Bill Haneman  <bill.haneman@sun.com>
1364
1365         * registryd/deviceeventcontroller.c:
1366         (spi_controller_update_key_grabs):
1367         Fix for #82509, lack of failure notification when
1368         ALL_WINDOWS keygrabs fail due to XGrabKey
1369         failure: we synchronize the server when 
1370         registering a passive grab, to make sure we get the
1371         error message before the call returns.
1372
1373 2002-06-03  Bill Haneman  <bill.haneman@sun.com>
1374
1375         * test/test-simple.c:
1376         (key_listener_cb):
1377         Removed #ifdef KEY_IMPL_WORKS guards.
1378         (test_keylisteners):
1379         Removed #ifdef KEY_IMPL_WORKS guards.
1380         Fixed bug which was causing a hang waiting for a 
1381         "press" event (which was already overwritten by a "release" 
1382         event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
1383         (key_listener_cb):
1384         Added code to set globals 'key_press_received' and
1385         'key_release_received'.
1386
1387         * TODO:
1388         Added section "1.1 API Proposed Additions" which
1389         lists API additions desired for at-spi-1.1 (only one so far).
1390         Updated TODO list a little.
1391         
1392 2002-06-02  Bill Haneman  <bill.haneman@sun.com>
1393
1394         AT-SPI 1.0 API FINAL: at-spi 1.0 is now
1395         API frozen.
1396         
1397         * configure.in: Revved to 1.0.0.
1398
1399         * idl/Accessibility_Registry.idl:
1400         (registerKeystrokeListener):
1401         Added boolean return value.
1402         
1403         * registryd/registry.c:
1404         (notify_listeners_cb): Minor fix to debug output.
1405
1406         * registryd/Accessibility_Registry.server.in.in:
1407         Revved version number in OAFIID to 1.0.
1408
1409         * registryd/registryd.c:
1410         (main):
1411         Use new OAFIID version.
1412
1413         * cspi/bonobo/cspi-bonobo.c:
1414         (cspi_init):
1415         Use new OAFIID version.
1416
1417         * test/at.c:
1418         (main):
1419         * test/app.c:
1420         (main):
1421         * atk-bridge/bridge.c:
1422         (atk_bridge_init):
1423         Use new OAFIID version.
1424
1425         * registryd/deviceeventcontroller.c:
1426         (impl_register_keystroke_listener):
1427         Added CORBA_boolean return value.
1428         (spi_controller_register_device_listener):
1429         Added gboolean return value.
1430         (spi_controller_register_global_keygrabs):
1431         Added gboolean return value.
1432         (spi_key_set_contains_key):
1433         Added implementation for many more control keys,
1434         for instance F1-F12, arrow keys, End, Home, Page_Up,
1435         Page_Down, Escape.
1436         [TODO: some still not implemented]. 
1437         
1438         * text/screen-review-test.c:
1439         (text_chunk_pad_string):
1440         New function: it provides mapping between coordinate
1441         positions of text chunks and character positions in the
1442         screen-review-line output string.
1443         (text_chunk_to_string):
1444         New function, calls text_chunk_pad_string with various
1445         pad/delimiter characters. Pushbuttons are delimited with
1446         square brackets, Frames with vertical 'pipe' lines, and 
1447         other text with double quotes.
1448         (text_chunk_list_to_string):
1449         Calls new function text_chunk_to_string.
1450         (toplevel_composite):
1451         New function to composite layers CANVAS through
1452         POPUP in each toplevel (other layers are composited
1453         across toplevels, i.e. BACKGROUND and OVERLAY).
1454         (review_buffer_composite):
1455         Revise to use new methods.
1456         
1457         
1458         
1459         
1460
1461 2002-05-31  Laszlo Peter  <laca@sun.com>
1462
1463         * configure.in: add the Xtst libdir to the runpath on Solaris,
1464         since it's not in the default library search path.
1465
1466 2002-05-29  jacob berkman  <jacob@ximian.com>
1467
1468         * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
1469
1470 2002-05-29  Bill Haneman  <bill.haneman@sun.com>
1471
1472         * test/screen-review-test.c:
1473         (text_chunk_pad_string):
1474         Added method, which pads the string according to the 
1475         text bounds of the chunk.  It also takes a 3-character
1476         string as a param which indicates the characters to be 
1477         used for start, padding, and end delimitation of the chunk.
1478         (text_chunk_to_string):
1479         Changed to use text_chunk_pad_string.
1480         
1481         * configure.in: Fixed bug in AC_OUTPUT that was
1482         causing path substitution in Accessibility_Registry.server
1483         to fail.
1484
1485 2002-05-23  Bill Haneman  <bill.haneman@sun.com>
1486
1487         * text/screen-review-test.c:
1488         (guess_string_clip):
1489         New method which attempts a best-guess at clipping
1490         text from components (like Java labels) which don't
1491         actually implement AccessibleText.  This inaccurate
1492         clip is based on the assumption that the label is
1493         justified left-and-right, and monospaced.
1494         (text_chunk_get_clipped_string):
1495         We now call guess_string_clip() for text-containing
1496         components that don't implement AccessibleText.
1497
1498         * test/screen-review-test.c:
1499         (review_buffer_get_text_chunk):
1500         We now pull "name" from labels if they do not implement
1501         AccessibleText (i.e. for Java labels).
1502         (get_screen_review_line_at):
1503         Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
1504
1505         * configure.in:
1506         Replaceded AC_OUTPUT target
1507         registryd/Accessibility_Registry.server with 
1508         registryd/Accessibility_Registry.server.in.
1509
1510         * registryd/Accessibility_Registry.server.in:
1511         Removed (this is now a Makefile target).
1512
1513         * registryd/Accessibility_Registry.server.in.in:
1514         Added (source for target above).  We now use $(libexecdir) as
1515         prefix for the executable at-spi-registryd.
1516
1517         * registry/Makefile.am: 
1518         Now install at-spi-registryd into $(libexecdir), and build .server
1519         file with path (see above).
1520         
1521 2002-05-22  Bill Haneman  <bill.haneman@sun.com>
1522
1523         * test/screen-review-test.c:
1524         (text_chunk_get_clipped_string):        
1525         We now check to see if words fall within clip bounds 
1526         before resorting to character-by-character clip bounds testing.
1527
1528         * TODO: Added a section for "2.2 Proposed API Additions".
1529
1530 2002-05-21  Bill Haneman  <bill.haneman@sun.com>
1531
1532         * test/screen-review-test.c:
1533         * test/Makefile.am:
1534         Added a screen review benchmarking and test program to test
1535         directory.
1536
1537         * cspi/spi_accessible.c:
1538         * cspi/spi_main.c:
1539         Made some of the debug strings passed to cspi_check_ev a
1540         little more specific.
1541
1542 2002-05-21  Padraig O'Briain  <padraig.obriain@sun.com>
1543
1544         * test/screen-review-test.c: Fix crashes in debug statements
1545
1546 2002-05-20  Bill Haneman  <bill.haneman@sun.com>
1547
1548         * test/screen-review-test.c: Added this file.
1549
1550 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
1551
1552         * atk-bridge/bridge.c: changed "object:state-change" to
1553         "object:state-changed" to match docs.
1554
1555 2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
1556
1557         * atk-bridge/bridge.c: Hooked up state-change event details.
1558
1559 2002-05-11  Bill Haneman <bill.haneman@sun.com>
1560
1561         * registryd/registry.c:
1562         Fixed quarking bug in event string parsing; now events with
1563         detail parameters get matched correctly to listeners.
1564         [Bugzilla 80608].
1565
1566         * util/idl/Magnifier.idl: remove.
1567         * util/idl: remove
1568         * util/*.[ch]: Remove.
1569         Magnification utilities and IDL are now in module gnome-mag.
1570
1571 2002-05-10  Bill Haneman <bill.haneman@sun.com>
1572
1573         * registryd/deviceeventcontroller.c:
1574         Fixed bug in grab key conversion which was causing keycode grabs
1575         to be converted to AnyKey grabs.
1576
1577         * NEWS:
1578         updated NEWS file to reflect recent spin-off of gnome-mag.
1579
1580 2002-05-09  Marc Mulcahy <marc.mulcahy@sun.com>
1581
1582         * cspi/spi_accessible.c: Added exception checks.  Fixed completely
1583         busted AccessibleStateSet_compare.  Removed redundant casts.
1584         
1585         * cspi/spi-action.c: Removed redundant casts.
1586
1587         * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
1588
1589         * cspi/spi_component.c: Fixed typos and casting error.
1590
1591         * cspi/spi_editabletext.c: Removed redundant casts.
1592
1593         * cspi/spi_hyperlink.c: Fixed casting and exception checking.
1594
1595         * cspi/spi_hypertext.c: Eliminated redundant casts.
1596
1597         * cspi/spi_image.c: Eliminated redundant casts.
1598
1599         * cspi/spi_registry.c: Eliminated redundant casts.
1600         SPI_deregisterGlobalEventListenerAll () removed retval variable.
1601         * cspi/spi_selection.c: Removed redundant casts.
1602         * cspi/spi_text.c: Eliminated redundant casts.  Fixed exception
1603         handling.  Screen geometry and text offsets were being returned as 0
1604         on error which is technically valid-- changed these to return -1.
1605         Added marshaller for text boundary types to fix bug with boundary
1606         types being passed incorrectly to atk.
1607                         
1608 2002-05-09  Bill Haneman <bill.haneman@sun.com>
1609
1610         
1611         * cspi/spi_registry.c:
1612         Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
1613         which was uncovered by the recent key changes.
1614
1615 2002-05-09  Bill Haneman <bill.haneman@sun.com>
1616
1617         * test/event-listener-test.c:
1618         * test/Makefile.am:
1619         Added new test, "event-listener-test"; 
1620         this code does two things; it benchmarks traversal time 
1621         for the accessible hierarchy for the first running accessible 
1622         app, and it connects listeners for all supported event types.  
1623         It is thus useful as an example event listener and for 
1624         diagnostics/debugging of event generation.
1625         
1626 2002-05-08  Bill Haneman <bill.haneman@sun.com>
1627
1628         * test/Makefile.am:
1629         Removed unnecessary dependency on libutil.
1630
1631         * configure.in:
1632         Revved micro version: 0.13.1
1633
1634 2002-05-08  Bill Haneman <bill.haneman@sun.com>
1635
1636         * configure.in: 
1637         Removed util/Makefile from targets.
1638
1639         * Makefile.am:
1640         Removed util subdir from SUBDIRS (temporarily, 
1641         pending removal of magnifier-only code
1642         from UTIL).
1643
1644         * test/simple-at.c:
1645         #ifdef-ed out magnifier dependencies, since
1646         magnifier IDL, headers, and binary now live in
1647         module gnome-mag and we don't want at-spi to depend 
1648         on gnome-mag.  A magnifier demo which can run alongside
1649         simple-at is forthcoming in the gnome-mag module.
1650         
1651         NOTE: Split magnifier binary, IDL, and magnification
1652         activation code from at-spi into module gnome-mag.
1653
1654 2002-05-03  Marc Mulcahy <marc.mulcahy@sun.com>
1655  
1656         * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
1657         cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
1658  
1659 2002-05-03  Bill Haneman <bill.haneman@sun.com>
1660
1661         * configure.in:
1662         Revved to version 0.13.0
1663         
1664         * idl/Accessibility_Registry.idl:
1665         Changed definition of KeySet from sequence of longs to sequence of
1666         KeyDefinitions, and added KeyDefinition struct.
1667         Required for fix to bug 80616.
1668
1669         * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
1670         Changed AccessibleKeySet to Accessibility_KeySet marshalling code
1671         to use new definition (see above).  
1672
1673         * registryd/deviceeventcontroller.c: handle_keygrab(), 
1674         spi_keyset_contains_key():
1675         Changed to make use of new struct; this allows matching based on
1676         string key-name, for instance "Tab".  This also allows matching of
1677         composed characters, non-alphanumeric characters in a way that
1678         doesn't involve dependencies on X keysym codes directly, etc.
1679         
1680         * test/key-listener-test.c:
1681         Added test for Alt-Tab key using "string" specification of keyset,
1682         and modified one of the tests to use a keycode-based keyset.
1683         Thus this test both tests and demonstrates the creation and use of
1684         keysets of three forms:  specified via keycode array, 
1685         keysym array, and string array. (The string case only contains a
1686         single string, i.e. a string array of length 1).        
1687
1688         * test/simple-at.c:
1689         Turned on PRINT_TREE option by default.  Also fixed a
1690         string-freeing bug in the PRINT_TREE code.  
1691         Added a listener to window:minimize events.
1692         
1693 2002-05-08  Padraig O'Briain  <padraig.obriain@sun.com>
1694
1695         * atk-bridge/bridge.c:
1696         (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
1697         for window:activate and window:deactiveate
1698         (atk_bridge_property_event_listener atk_bridge_signal_listener
1699         atk_bridge_window_event_listener) Tidy debug code
1700
1701 2002-05-02  Marc Mulcahy <marc.mulcahy@sun.com>
1702
1703         * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
1704         Fixed handling for NULL return value from ATK.
1705
1706         * libspi/action.c libspi/component.c libspi/editabletext.
1707         libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
1708         libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
1709         Removed redundant casts.
1710         
1711         * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
1712         Fixed off by one bug.
1713         
1714         *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
1715         function not present in idl)
1716         
1717 2002-05-02  jacob berkman  <jacob@ximian.com>
1718
1719         * atk-bridge/Makefile.am: make atk-bridge a real module
1720
1721 2002-04-26  Radek Doulik  <rodo@ximian.com>
1722
1723         * libspi/stateset.c (spi_init_state_type_tables): fix size of
1724         atk_state_types table
1725
1726 2002-04-22  jacob berkman  <jacob@ximian.com>
1727
1728         * util/Makefile.am: 
1729         * libspi/Makefile.am: add deps on the built files to help
1730         automake, and don't version the ORBit typelib
1731
1732 2002-04-19  Padraig O'Briain  <padraig.obriain@sun.com>
1733
1734         * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h 
1735         cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
1736         cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c 
1737         cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
1738         cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
1739         cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
1740         cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
1741         libspi/accessible.h libspi/accessible.h libspi/base.h 
1742         libspi/component.h libspi/editabletext.h libspi/hyperlink.h 
1743         libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
1744         libspi/relation.h libspi/remoteobject.h libspi/selection.h 
1745         libspi/spi-private.h libspi/statetset.h libspi/table.h
1746         libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
1747         util/mag_client.h util/mag_control.c util/mag_image.c
1748         util/mag_image.h util/magnifier.c util/magnifier.h: 
1749         Add missing file headers; standardize existing ones
1750
1751 2002-04-18  Marc Mulcahy  <marc.mulcahy@sun.com>
1752
1753         * atk-bridge/bridge.c: Added window event support.
1754
1755 2002-04-18  Michael Meeks  <michael@ximian.com>
1756
1757         * libspi/relation.c (impl_getNTargets): impl.
1758         (impl_getTarget): impl.
1759
1760         * libspi/Makefile.am: fix stateset install.
1761
1762 2002-04-17  Bill Haneman <bill.haneman@sun.com>
1763
1764         * NEWS:
1765         Started putting useful info in this file.
1766         
1767 2002-04-17  Marc Mulcahy <marc.mulcahy@sun.com>
1768  
1769         * atk-bridge/bridge.c: 
1770         Propagate state-changed notifications to ATs
1771  
1772         * cspi/spi_registry.c: update docs to reflect actual behavior of
1773         state-change events.
1774
1775 2002-04-17  Bill Haneman <bill.haneman@sun.com>
1776
1777         * configure.in:
1778         Incremented version to 0.12.1
1779         
1780         * util/mag_client.h:
1781         Add missing declaration for magnifier_exit, 
1782         used by mag_control.c - Forte compiler didn't like
1783         the implicit redeclaration of the function :-(
1784
1785
1786 2002-04-16  Bill Haneman <bill.haneman@sun.com>
1787
1788         * configure.in:
1789         Revved version to 0.12 due to API change (see below).
1790
1791         * cspi/spi-roletypes.h:
1792         removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE 
1793         definition from the inline docs, and added docs
1794         for SPI_ROLE_LAST_DEFINED.
1795
1796         * cspi/spi.h:
1797         * cspi/spi_streamablecontent.c:
1798         Added missing seek_type parameter to
1799         (so far unused) method, 
1800         AccessibleStreamableContent_seek().
1801         [ RT approval JodyG. ]
1802
1803         * cspi/spi_event.c:
1804         Fixed docs for SPI_createAccessibleKeystrokeListener.
1805
1806         * cspi/spi_registry.c:
1807         Fixed docs for SPI_KEYSET_ALL_KEYS.
1808         
1809         * docs/reference/cspi/at-spi-cspi-sections.txt:
1810         Added a number of missing APIs to SECTIONS.
1811         
1812 2002-04-16  Bill Haneman <bill.haneman@sun.com>
1813
1814         * registryd/Makefile.am:
1815         * cspi/Makefile.am:
1816         * cspi/bonobo/Makefile.am:
1817         Add $(X_LIBS) to makefiles.
1818
1819 2002-04-15  Bill Haneman <bill.haneman@sun.com>
1820
1821         * configure.in:
1822         Revved version to 0.11.
1823
1824         * libspi/component.c:
1825         Added implementation for grabFocus.
1826
1827         * idl/Accessibility_Component.idl
1828         (Accessibility_Component_grabFocus):
1829         Made this method return boolean to indicate success or failure, to
1830         be consistent with cspi and the corresponding ATK method.
1831         
1832         * idl/Accessibility_Selection.idl
1833         (Accessibility_Selection_selectAll) :
1834         Made these methods return boolean to indicate success or
1835         failure, to be consistent with cspi and the corresponding ATK methods.
1836         
1837         * idl/Accessibility_EditableText.idl 
1838         (Accessibility_EditableText_setTextContents,
1839          Accessibility_EditableText_insertText,
1840          Accessibility_EditableText_cutText,
1841          Accessibility_EditableText_deleteText,
1842          Accessibility_EditableText_pasteText):
1843         Made these methods return boolean to indicate
1844         success or failure.
1845
1846         * cspi/spi_editabletext.c:
1847         Made these methods return booleans.
1848
1849         * libspi/selection.c:
1850         * libspi/component.c:
1851         * libspi/editabletext.c:
1852         Connected the boolean returns from ATK
1853         to the server-side code referenced above.
1854         
1855 2002-04-14  Bill Haneman <bill.haneman@sun.com>
1856
1857         * idl/Accessibility_Table.idl: Added missing methods,
1858         Accessibility_Table_addRowSelection,
1859         Accessibility_Table_addColumnSelection,
1860         Accessibility_Table_removeRowSelection,
1861         Accessibility_Table_removeColumnSelection.
1862
1863         * cspi/spi_table.c:
1864         Added C wrappers for above IDL:
1865         AccessibleTable_addRowSelection,
1866         AccessibleTable_addColumnSelection,
1867         AccessibleTable_removeRowSelection,
1868         AccessibleTable_removeColumnSelection.
1869         
1870         * libspi/table.c:
1871         Added server-side implementation code for IDL above, connecting
1872         to pre-existing ATK api.
1873         
1874 2002-04-13  Marc Mulcahy <marc.mulcahy@sun.com>
1875
1876         * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
1877
1878         * libspi/accessible.c: Added implementation fo
1879         Accessibility_Accessible_get_state.
1880         
1881         * libspi/libspi.h: Added stateset.h to the list of includes.
1882
1883         * libspi/stateset.c: Fixed broken implementation.
1884
1885 2002-04-13  Bill Haneman <bill.haneman@sun.com>
1886
1887         * util/magnifier.c:
1888         Added implementation code for Accessibility_Magnifier_exit ().
1889
1890         * util/mag_control.c:
1891         Added test code for above method; you can
1892         now kill an existing magnifier via 
1893         ./mag_control q, from the util directory.
1894
1895         * test/key-listener-test.c:
1896         * test/Makefile.am:
1897         Added a new test, for our key listener API.
1898
1899 2002-04-11  Bill Haneman <bill.haneman@sun.com>
1900
1901         * test/app.c, test/keysynth-demo.c:
1902         * util/magnifier.c:
1903         Replace use of snprintf with g_snprintf.
1904         (fix for bugzilla 78249)
1905
1906 2002-03-27  Michael Meeks  <michael@ximian.com>
1907
1908         * Version 0.10.0
1909
1910         * util/Makefile.am (INCLUDES): fix.
1911         (DONT_DIST_SOURCE): don't distribute the
1912         generated files.
1913
1914         * libspi/Makefile.am (dist-hook): ditto.
1915
1916 2002-03-27  Padraig O'Briain  <padraig.obriain@sun.com>
1917
1918         * libspi/hypertext.c:
1919         Fix warnings when yelp is used with atk-bridge
1920
1921 2002-03-21  Michael Meeks  <michael@ximian.com>
1922
1923         * libspi/application.c (spi_application_new):
1924         use spi_accessible_construct so we use the AtkObject
1925         cache correctly.
1926
1927 2002-03-19  Michael Meeks  <michael@ximian.com>
1928
1929         * registryd/registry.c (desktop_remove_application),
1930         (desktop_add_application): clean coding style.
1931
1932         * registryd/desktop.c (spi_desktop_remove_application),
1933         (spi_desktop_add_application): kill re-enterency hazards.
1934         (spi_desktop_dispose): remove bogus redundant cast
1935         obscuring bug; fix bug too.
1936         (spi_desktop_init): make the desktop object immortal.
1937
1938 2002-03-16 Bill Haneman <bill.haneman@sun.com>
1939
1940         * test/simple-at.c:
1941         Added a #define-guarded tree-traversal step
1942         when enumerating the apps (diagnostic tool).
1943
1944 2002-03-15 Bill Haneman <bill.haneman@sun.com>
1945
1946         * idl/Accessibility_Role.idl:
1947         Added ROLE_DRAWING_AREA which seemed to be missing from the
1948         previous commit.
1949
1950 2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
1951
1952         * cspi/spi-roletypes.h cspi/spi_accessible.c
1953         idl/Accessibility_Role.idl libspi/accessible.c: synched up role
1954         types with ATK.
1955
1956         * registryd/desktop.c registryd/desktop.h registryd/registry.c:
1957         Added signals to SpiDesktop and callbacks in SpiRegistry to notify
1958         AT when applications are added and removed from the desktop.  This
1959         reverts the previous broken implementation using the backing
1960         AtkObject for the SpiDesktop.
1961         
1962         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1963
1964         * registryd/desktop.c: emit the "children-changed::add" and
1965         "children-changed::remove" signals on the backing ATK object for
1966         the desktop so AT can tell when applications are started and shut
1967         down.
1968
1969         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1970
1971         * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
1972
1973         2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
1974
1975         * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
1976
1977         * cspi/spi_accessible.c: Implemented c bindings for stateset support
1978
1979         * cspi/state-types.h: synched with IDL and ATK
1980
1981         2002-03-13  Bill Haneman <bill.haneman@sun.com>
1982
1983         * libspi/accessible.c 
1984         (impl_accessibility_accessible_get_child_at_index):
1985         Change return value for g_return_if_fail ()
1986         to CORBA_OBJECT_NIL instead of "0" (!)
1987
1988         * registryd/Makefile.am:
1989         * registryd/Accessibility_Register.server.in:
1990         Changed name of executable, "registryd",
1991         to something more informative:
1992         "at-spi-registryd".
1993
1994 2002-03-13  Michael Meeks  <michael@ximian.com>
1995
1996         * atk-bridge/bridge.c (atk_bridge_init): don't register
1997         if we're in a bonobo-component, rather than a bonobo app.
1998
1999 2002-03-13  Michael Meeks  <michael@ximian.com>
2000
2001         * atk-bridge/bridge.c (gtk_module_init): split
2002         out body to (atk_bridge_init): here, since otherwise
2003         we get symbol conflicts and oddness when invoked
2004         from (gnome_accessibility_module_init): here (upd.)
2005
2006 2002-03-11  Bill Haneman  <bill.haneman@sun.com>
2007
2008         * HACKING:
2009         New file.  Explicitly allow "build sheriff" putbacks provided
2010         they are tested on Solaris.
2011         
2012         * docs/reference/cspi/Makefile.am:
2013         Added '-' to the "cp" command for index.sgml.
2014         ("patch by thomasvs, soon coming to a GUADEC near you")
2015
2016         * configure.in:
2017         Incremented version number (0.9.0) for new release.
2018         Changed macro that checks for popt, to better detect
2019         obsolete versions of popt.
2020         
2021         * configure.in:
2022         Added X_LIBS to AC_SUBST, for applications
2023         that call Xlib API directly.
2024         
2025
2026 2002-03-07  Bill Haneman  <bill.haneman@sun.com>
2027
2028         * configure.in:
2029         Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
2030
2031         * util/Makefile.am:
2032         Fix regression caused by hard-coding major
2033         version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
2034         (see above change).
2035         
2036         * test/test-simple.c (test_editable_text),
2037         (test_test): revert previous change (error was 
2038         a regression in gail which is now fixed).
2039         
2040 2002-03-04  Michael Meeks  <michael@ximian.com>
2041
2042         * test/test-simple.c (test_editable_text),
2043         (test_text): pass G_MAXINT instead of '-1' for
2044         whole string - is this a good thing !?
2045
2046         * cspi/spi_accessible.c
2047         (Accessible_getRelationSet): fix crasher bug
2048         overwriting the end of the array.
2049
2050         * test/test-simple.c (validate_accessible): free,
2051         not g_free returned relation set.
2052
2053 2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
2054
2055         * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
2056         implemented stateset support
2057
2058         * idl/Accessibility_State.idl: Made necessary changes to
2059         the IDL to support state sets.
2060
2061 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2062
2063         * registryd/deviceeventcontroller.c:
2064         Added implementation for generateMouseEvent.
2065
2066         * cspi/spi_registry.c:
2067         Connected new implementation for generateMouseEvent
2068         to the C bindings.
2069         
2070 2002-02-12 Bill Haneman <bill.haneman@sun.com>
2071
2072         * configure.in: 0.8
2073         Incremented revision (but no change in public API
2074         outside of 'utils', which are not installed public yet.)
2075
2076         * libspi/component.c:
2077         Changed to use atk_component API for layers and
2078         mdi_zorder, instead of deprecated atk_object API.
2079         
2080         Magnification Utility Enhancements:
2081         
2082         * util/magnifier.c:
2083         Added implementation of createZoomRegion, clearAllZoomRegions,
2084         resizeZoomRegion.  Added new commandline argument
2085         "--no-initial-region".  Note that clearAllZoomRegions doesn't
2086         unmap the old '0' region as it should (yet), and the other
2087         methods only work when creating/resizing a single region,
2088         which is "region 0".  
2089         (Code for multiple region support will be added later.)
2090
2091         * util/mag_image.c:
2092         Now we raise the magnifier window each time it's refreshed;
2093         this will help keep it on top.
2094         
2095         * util/mag_client.h:
2096         Added simple wrappers for above, used by mag_control.
2097         For general use, it's recommended to use the bonobo magnifier
2098         control API directly instead of using these wrappers.
2099
2100         * util/mag_image.h:
2101         Moved ZoomRegionData from magnifier.c to this file.
2102         
2103         * util/mag_control.c: 
2104         Added some code to exercise new IDL implementations.
2105         
2106 2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
2107
2108         * libspi/text.c: Provide implementation for getAttributes.
2109
2110 2002-02-04  Bill Haneman <bill.haneman@sun.com>
2111         
2112         * configure.in:
2113         Incremented revision.
2114
2115         * test/test-simple.c:
2116         Replaced use of deprecated g_main_iteration with 
2117         g_main_context_iteration.
2118         
2119 2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
2120
2121         * configure.in:
2122         Incremented revision for desktop alpha 2.
2123
2124 2002-01-28  Mark McLoughlin  <mark@skynet.ie>
2125
2126         * libspi/remoteobject.[ch]: make RemoteObject and interface rather
2127         than an atk object.
2128
2129         * test/simple-at.c: include netinet/in.h.
2130
2131 2002-01-24  Mark McLoughlin  <mark@skynet.ie>
2132
2133         * cspi/spi_accessible.c: (Accessible_getRelationSet):
2134         use NULL, not CORBA_OBJECT_NIL.
2135
2136         * libspi/accessible.c:
2137         (impl_accessibility_accessible_get_relation_set):
2138         allocate the sequence correctly.
2139
2140         * libspi/remoteobject.h: kill spi_remote_object_new.
2141
2142         * test/test-simple.c: (validate_accessible): add code
2143         to test relation sets, now all we need is to figure
2144         out how to excercise this code path :/
2145
2146 2002-01-18  Michael Meeks  <michael@ximian.com>
2147
2148         * test/test-simple.c
2149         (key_listener_cb): consume the key.
2150         (test_keylisteners): update.
2151         (main): wait for any pending unrefs on events.
2152
2153         * registryd/deviceeventcontroller.c
2154         (spi_controller_update_key_grabs): only re-issue the
2155         grab on a key release.
2156         (spi_device_event_controller_forward_key_event):
2157         refresh the keygrabs before we notify the listeners,
2158         to reduce the X ungrab / re-grab race.
2159         (spi_controller_register_with_devices): remove
2160         XSelectInput - we do that with the gdk_window_ call.
2161         (_spi_controller_device_error_handler): return a value.
2162         s/GDK_DISPLAY/spi_get_display/
2163
2164 2002-01-17  Michael Meeks  <michael@ximian.com>
2165
2166         * registryd/deviceeventcontroller.c
2167         (_deregister_keygrab): don't blow out the later
2168         assertion.
2169
2170         * test/test-simple.c (test_keylisteners): do a
2171         more intelligent validation.
2172
2173 2002-01-14  Michael Meeks  <michael@ximian.com>
2174
2175         * atk-bridge/bridge.c
2176         (gnome_accessibility_module_init),
2177         (gnome_accessibility_module_shutdown): impl.
2178         (gtk_module_init): protect vs. double inits.
2179         (add_signal_listener): impl.
2180         (spi_atk_bridge_state_event_listener): kill
2181         (deregister_application): split out of
2182         (spi_atk_bridge_exit_func): here.
2183
2184 2002-01-18  Bill Haneman <bill.haneman@sun.com>
2185
2186         * test/simple-at.c:
2187         Added caret tracking when using magnifier, and 
2188         now use text bounds for focus tracking of text elements, rather than
2189         the component bounds - this is helpful for short text fields in long
2190         table cells, at high magnification.
2191         
2192 2002-01-16  Bill Haneman <bill.haneman@sun.com>
2193
2194         * registryd/deviceeventcontroller.c:
2195         Regression fix for keylistener de-registration; global keygrabs
2196         were not being released when deregisterKeystrokeListener was
2197         called in cspi, since 
2198         Accessibility_DeviceEventController_deregisterKeystrokeListener
2199         was called with a zero-length keyset.  That is because the cspi
2200         method, SPI_deregisterKeystrokeListener, does not take a keyset
2201         parameter but instead should remove all the key grabs held be a
2202         keystroke listener.  
2203         The code in impl_deregister_keystroke_listener was changed to copy
2204         the keylist from the listener instance previously registered with
2205         the DeviceEventController before releasing the grabs.
2206
2207         * registryd/registry.c:
2208         * registryd/deviceeventcontroller.c:
2209         * libspi/spi-private.h:
2210         * libspi/util.c:
2211         Changed spelling of "re-enterant" to "re-entrant" globally.
2212
2213 2002-01-16  Bill Haneman <bill.haneman@sun.com>
2214
2215         * test/test-simple.c:
2216         Changed key listeners test - the test was slightly mis-using the
2217         (admittedly poorly documented) SPI_generateKeyboardEvent API.
2218         It now uses '=' as the key event listened to and generated,
2219         relying on a keysym match rather than assuming that keycode 33 
2220         is always equal to keysym '!'.
2221
2222 2002-01-15  Bill Haneman <bill.haneman@sun.com>
2223
2224         * test/simple-at.c:
2225         Changed simple-at to use a specific keyset, rather than
2226         SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
2227         manager, desktop, etc.
2228         
2229 2002-01-11  Bill Haneman <bill.haneman@sun.com>
2230
2231         * registryd/deviceeventcontroller.c:
2232         Replaced standard X error handler with a special handler that 
2233         is non-fatal for failed keygrabs.  This works around 
2234         problems with keygrab clashes sometimes observed on 
2235         Solaris using CDE.
2236         Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
2237         mouse handling code as yet).
2238         
2239 2002-01-11  Bill Haneman <bill.haneman@sun.com>
2240
2241         * configure.in:
2242         Incremented revision for desktop alpha release.
2243
2244         * README:
2245         Fixed a couple of the more glaring errors (still not 
2246         very up-to-date).
2247
2248 2002-01-11  Michael Meeks  <michael@ximian.com>
2249
2250         * registryd/deviceeventcontroller.c
2251         (spi_device_event_controller_forward_key_event): kill
2252         XUngrabKey / XKeyGrab race.
2253         (spi_controller_grab_keyboard): rename to
2254         (spi_controller_update_key_grabs): this, and deal
2255         with incremental adding / removing grabs more
2256         sensibly.
2257         (_register_keygrab): ensure we're not pending a remove.
2258         (spi_grab_mask_free): impl.
2259         (spi_controller_register_global_keygrabs): split out
2260         common code into:
2261         (handle_keygrab): impl.
2262         (_deregister_keygrab): impl.
2263         (spi_controller_deregister_global_keygrabs): impl.
2264         (spi_controller_update_key_grabs): re-issue the grab if
2265         we just recieved a notification.
2266
2267         * test/test-simple.c (key_listener_cb): remove debug.
2268
2269         * registryd/deviceeventcontroller.c
2270         (spi_controller_register_device_listener): after
2271         registering a global keygrab, actualy register it !
2272         don't wait for a timeout; doh !
2273
2274         * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
2275         to make it more readable / manipulable.
2276         s/grabmask/grab_mask/ s/refcount/ref_count/
2277         s/keyval/key_val/ s/modmask/mod_mask
2278
2279 2002-01-08  Michael Meeks  <michael@ximian.com>
2280
2281         * registryd/deviceeventcontroller.c
2282         (spi_controller_register_with_devices): use gdk calls to
2283         setup a filter.
2284         (global_filter_fn): implement the filter.
2285         (spi_device_event_controller_check_key_event): rename to
2286         (spi_device_event_controller_forward_key_event): this & upd.
2287         (spi_get_display): replace with GDK_DISPLAY.
2288
2289         * registryd/deviceeventcontroller.c
2290         (spi_controller_deregister_device_listener): unroll into
2291         (impl_deregister_keystroke_listener): here to simplify.
2292         (spi_controller_register_global_keygrabs): split cut and
2293         paste (!) out into (_register_keygrab): here, shorter & sweeter.
2294         (spi_controller_deregister_device_listener): remove.
2295         (impl_register_mouse_listener): remove, no mouse listener
2296         support in at-spi-1.0
2297
2298         * registryd/registry.c
2299         (_device_event_controller_hook): kill.
2300         (spi_registry_init): upd.
2301
2302         * registryd/deviceeventcontroller.c
2303         (spi_device_event_controller_class_init): upd.
2304         (spi_check_key_event): merge into.
2305         (spi_device_event_controller_check_key_event):
2306         here and kill strange static ev init, don't leak
2307         the x_event - nor dynamicaly allocate it.
2308
2309         * registryd/registry-main.c (main): re-direct
2310         timeout to remove strange vtable mess.
2311
2312         * registryd/deviceeventcontroller.c
2313         (remove_listener_cb): impl.
2314         (spi_controller_deregister_device_listener):
2315         fix re-enterancy hazard.
2316
2317 2002-01-07  Michael Meeks  <michael@ximian.com>
2318
2319         * registryd/deviceeventcontroller.c
2320         (spi_device_event_controller_new): upd.
2321         (impl_notify_listeners_sync): upd. debug.
2322         (spi_notify_keylisteners): fix re-enterancy hazards,
2323         prettify, remove O(n*n) iteration.
2324         (spi_controller_grab_keyboard): fix iteration.
2325         (spi_check_key_event): re-format to suit coding style.
2326         Clean all the warnings - we're warning free.
2327
2328         * registryd/deviceeventcontroller.h:
2329         * registryd/registry.h: make mutualy referential with
2330         typesafe forward references instead of (!) void pointer
2331         hacks.
2332
2333 2002-01-11  Michael Meeks  <michael@ximian.com>
2334
2335         * cspi/spi_accessible.c (role_names): add a role name
2336         to sync this array with the enum; and make the regression
2337         tests pass, sigh.
2338
2339 2002-01-10  Michael Meeks  <michael@ximian.com>
2340
2341         * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
2342         allow expansion of enumeration & kill warning.
2343
2344         * test/test-simple.c (key_listener_cb): impl.
2345         (test_keylisteners): impl.
2346
2347         * cspi/spi-listener.h: make listener signatures const
2348         on the provided (const) events.
2349
2350         * test/keysynth-demo.c: upd. to const events.
2351
2352         * test/simple-at.c: ditto.
2353
2354 2002-01-11  Bill Haneman <bill.haneman@sun.com>
2355
2356         * configure.in:
2357         Rev the version to 0.5 (the previous tarball was named 0.4, 
2358         even though the micro number was 3), so we need to rev upwards
2359         again for beta2/"desktop-alpha" 
2360  
2361         * test/demo.csh:
2362         Checked in a demo script, which requires editing before use!
2363         Proceed with caution.
2364         
2365         * libspi/value.h:
2366         Fixed typo in header which was redefining SPI_ACTION_CLASS.
2367
2368         * cspi/spi_accessible.c:
2369         Add a couple of missing enum initializations, and fix some enum
2370         comments.
2371
2372         * cspi/spi_registry.c:
2373         Add comment describing keystring parameter to SPI_generateKeyboardEvent.
2374         
2375         * docs/reference/cspi/at-spi-cspi-sections.txt:
2376         Remove/fix a couple of broken document references.
2377
2378         * test/simple-at.c:
2379         Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
2380         as Alt-Control to listen for commands, since on some systems
2381         Control-Alt may already be grabbed.
2382
2383 2002-01-10  Bill Haneman <bill.haneman@sun.com>
2384
2385         * configure.in:
2386         Update version number to 0.4 for Beta2.
2387         
2388         * libspi/accessible.c, libspi/accessible.h:
2389         Expose spi_accessible_construct, to enable libgail-gnome
2390         construction from spi_accessible subtype.
2391
2392         * utils/magnifier.c:
2393         Workaround for bug in some non-gnome-compliant window managers
2394         which made magnifier resize improperly.
2395
2396 2002-01-09  Bill Haneman <bill.haneman@sun.com>
2397
2398         * libspi/accessible.c: (spi_accessible_new) :
2399         Move the test for SPI_IS_REMOTE_OBJECT to
2400         spi_accessible_new_return, fixing a bug and compile time warning.
2401         
2402 2002-01-08  Michael Meeks  <michael@ximian.com>
2403
2404         * registryd/registry.c (parse_event_type): remove strndup.
2405
2406         * libspi/Makefile.am (libspi_la_SOURCES): remove
2407         sources already included in the headers section.
2408
2409         * libspi/util.c: add.
2410
2411         * libspi/spi-private.h: add.
2412
2413         * registryd/registry.c: update to moved list iterators.
2414
2415 2002-01-05  Michael Meeks  <michael@ximian.com>
2416
2417         * test/simple-at.c (main): upd. auto-module set to atk-bridge
2418
2419         * test/test-simple.c (main): ditto.
2420
2421 2002-01-04  Michael Meeks  <michael@ximian.com>
2422
2423         * libspi/accessible.c (spi_accessible_new): remove 2nd,
2424         redundant construct.
2425
2426         * registryd/registry.c
2427         (get_listener_list): impl.
2428         (impl_accessibility_registry_register_global_event_listener):
2429         re-impl. to simplify using ~, remove dodgy const cast off.
2430         (parse_event_type): constify.
2431         (impl_accessibility_registry_deregister_global_event_listener_all): 
2432         re-write, more efficiency and simplicity, kill re-enterancy
2433         hazard.
2434         (compare_listener_corbaref, compare_corba_objects),
2435         (compare_listener_quarks): define out.
2436         (impl_accessibility_registry_deregister_global_event_listener): 
2437         re-write for effiency, and nail re-enterancy hazard.
2438         (impl_accessibility_registry_get_desktop_list): impl.
2439         (re_enterant_list_delete_link): impl.
2440         (re_enterant_list_foreach): impl.
2441         (remove_listener_cb): impl.
2442         (_registry_notify_listeners): kill.
2443         (notify_listeners_cb): impl.
2444
2445         * cspi/spi_registry.c (SPI_freeDesktopList): impl.
2446         (SPI_getDesktopList): impl.
2447
2448         * test/test-simple.c (test_desktop): test the methods.
2449
2450 2002-01-03  Michael Meeks  <michael@ximian.com>
2451
2452         * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
2453         keystrings since we free them
2454         (SPI_freeAccessibleKeySet): in here.
2455
2456         * libspi/accessible.c (spi_accessible_new): kill warning,
2457         wonder what is going on with the constructor here.
2458
2459 2002-03-01  Bill Haneman <bill.haneman@sun.com>
2460
2461         * libspi/accessible.c (spi_accessible_new ()) :
2462         Added check to see if AtkObject is an SpiRemoteObject before
2463         creating an SpiAccessible.
2464         
2465 2002-05-01  Bill Haneman <bill.haneman@sun.com>
2466
2467         * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
2468         Enable keygrabs using the Control modifier, now that they are
2469         working properly (they were previously disabled).
2470
2471         * test/simple-at.c:
2472         Change the command keygrab for this demo to "Control+Alt", so as
2473         to conflict with fewer other key commands on the system; this
2474         means that the quit command for "simple-at" is now "Ctrl-Alt-q".
2475
2476         Removed a pointlessly-chatty keylistener for unshifted keys
2477         (shifted keys are still reported).
2478         
2479 2002-02-01  Bill Haneman <bill.haneman@sun.com>
2480
2481         * libspi/remoteobject.h:
2482         * libspi/remoteobject.c:
2483         Added definitions for special AtkObject subtype, required for
2484         support of remote components (specifically, used by BonoboControl
2485         accessibility implementation).
2486         
2487 2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
2488
2489         * cspi/spi.h: synched relation types with ATK
2490
2491         * cspi/spi_accessible.c: Added implementations of
2492         AcccessibleRelation_* methods
2493
2494         * idl/Accessibility_Relation.idl: added getRelationTypeName
2495         method.  Synched known relation types with ATK.  Allowed for
2496         relation type extension with the RELATION_EXTENDED type.
2497         
2498         * libspi/relation.c: Provided implementations for
2499         AccessibleRelation methods.
2500
2501 2002-01-01  Bill Haneman <bill.haneman@sun.com>
2502
2503         API tweaks for today's API 'freeze'.
2504
2505         * idl/*:
2506         Added placeholder functions to allow future compatible expansion
2507         of the IDL interfaces.
2508
2509         * idl/Accessibility_Registry.idl:
2510         Changed generateKeyEvent to generateKeyboardEvent.  Changed
2511         signature of this method to accept an optional keystring in
2512         parameter (for complex text input synthesis) and changed use of
2513         simple 'boolean' parameter in registerKeystrokeListener to a
2514         struct, EventListenerMode.
2515
2516         * cspi/spi_accessible.c:
2517         * cspi/spi.h:
2518         * cspi/spi_streamablecontent.c:
2519         Added references to AccessibleStreamableContent interface, and
2520         definition and implementation of AccessibleStreamableContent 
2521         C bindings.
2522
2523         * cspi/spi_registry.c:
2524         * cspi/spi.h:
2525         Changed generateKeyEvent API to generateKeyboardEvent,
2526         taking a new (optional) keystring parameter to support complex
2527         text input.
2528         
2529         * at-bridge/*:
2530         * atk-bridge/*:
2531         Renamed directory (to better reflect its actual purpose, bridging
2532         from at-spi to ATK).  The .so module is also now named
2533         libatk-bridge.so.
2534
2535         * idl/Accessibility_Hypertext.idl:
2536         * libspi/accessible.c:
2537         * libspi/hypertext.h:
2538         * libspi/hypertext.c:
2539         Changed Accessibility_Hypertext to *not* derive from
2540         Accessibility_Text.
2541
2542         * cspi/spi_registry.c:
2543         Added list of legal event type names for 'window' events, which
2544         completes the registry event API.
2545
2546 2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
2547
2548         * at-bridge/bridge.c: Added registration for separate
2549         "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
2550         signals.  If either of the first two parameters to the generic
2551         bridge signal handler are ints, they are passed on as event
2552         details.  This allows an AT to determine what text was inserted.
2553
2554 2001-12-21  Bill Haneman <bill.haneman@sun.com>
2555
2556         * registryd/deviceeventcontroller.c:
2557         Fixed regressions in generateKeyEvent caused by the removal of
2558         gdk_init from registryd; we now use pure X calls to connect to the
2559         display, which makes sense because deviceeventcontroller already
2560         uses a fair bit of X API (should eventually be migrated to a
2561         'portability layer').
2562
2563         * registryd/desktop.c:
2564         Fixed minor regression in spi_desktop_init, changed the way the
2565         desktop name is being set to work with new spi_base API
2566         (gobject-based, rather than AtkObject-based).
2567
2568         * registryd/Makefile.am:
2569         Minor revision of makefile to use XTST_LIBS variable rather than
2570         hard-wiring the Xtst LD_ADD element.
2571
2572         * test/keysynth-demo.c:
2573         Tweaked an output message; added initialization of the
2574         'keystrings' member of the "switch listener" key_set.
2575
2576         * libspi/relation.c:
2577         Squashed compile-time warning.
2578
2579         * libspi/accessible.c:
2580         Cosmetic and formatting fixes, renamed a static method.
2581         
2582 2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
2583
2584         * libspi/accessible.c 
2585         * libspi/action.c
2586         * libspi/application.c 
2587         * libspi/base.c 
2588         * libspi/base.h
2589         * libspi/component.c 
2590         * libspi/editabletext.c
2591         * libspi/hyperlink.c 
2592         * libspi/hypertext.c
2593         * libspi/image.c 
2594         * libspi/selection.c 
2595         * libspi/table.c
2596         * libspi/text.c 
2597         * libspi/value.c 
2598         * registryd/desktop.c:
2599         Changed SpiBase to contain a GObject pointer rather than an AtkObject
2600
2601 2001-12-17  Bill Haneman <bill.haneman@sun.com>
2602
2603         * idl/Accessibility_Registry.idl:
2604         Added boolean member 'is_text' to DeviceEvent.  This is for the
2605         use of key events, and helps prevent ambiguity between composed
2606         key strings and keysym names, since both may potentially be
2607         returned in the 'event_string' member.
2608
2609         * at-bridge/bridge.c:
2610         * registryd/deviceeventcontroller.c:
2611         Use the 'is_text' member when notifying device event listeners.
2612         Knon issue: composed characters are not dealt with correctly by
2613         the global key listener implementation yet.
2614         
2615 2001-12-17  Bill Haneman <bill.haneman@sun.com>
2616
2617         * at-bridge/bridge.c:
2618         Namespaced local static methods to spi_atk_bridge_* where
2619         previously named bridge_*, and spi_* elsewhere.
2620
2621         * at-bridge/bridge.c:
2622         * cspi/bonobo/cspi-bonobo-listener.c:
2623         Added demarshalling/conversion for string member of
2624         Accessibility_DeviceEvent to AccessibleKeystroke.
2625
2626         * registryd/deviceeventcontroller.c:
2627         Added code to fill the Accessibility_DeviceEvent key string value
2628         member for global key events (i.e. from XGrabKey), to match
2629         behavior of Accessibility_DeviceEvent from the toolkit key events
2630         from the bridge.  Fixed timestamp in global key event notifications.
2631
2632         * test/simple-at.c:
2633         Added printout of key event's string value to
2634         report_ordinary_key_event, for demo/debugging purposes.
2635
2636 2001-12-15  Bill Haneman <bill.haneman@sun.com>
2637
2638         * idl/Accessibility_Registry.idl:
2639         Removed Accessibility_KeyStroke structure in favor of generic
2640         Accessibility_DeviceEvent structure.
2641         Changed Accessibility_ControllerEventMask from a struct to an
2642         unsigned long.
2643
2644         * at-bridge/bridge.c:
2645         Changed APIs to use DeviceEvent structure as above, and removed
2646         bogus casting between these event structures.
2647
2648         * cspi/spi-listener.h:
2649         Added keystring member of AccessibleKeystroke structure, to enable
2650         matching on event "names" rather than only hardware codes and
2651         keysyms.
2652
2653         * cspi/spi.h:
2654         Added keystrings member of AccessibleKeySet struct, to allow
2655         matching on event names (as above).
2656         Added declarations for SPI_createAccessibleKeySet and
2657         SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
2658         event modmasks directly as unsigned ints rather than structs with
2659         refcounts, in the DeviceEventController methods.
2660
2661         * cspi/spi_registry.c:
2662         Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
2663
2664         * cspi/spi-roletypes.h:
2665         Added documentation of newly added SPI Roles.
2666
2667         * cspi/bonobo/cspi-bonobo-listener.c:
2668         Changes in support of API changes above.
2669         
2670         * libspi/accessible.c:
2671         Converted APIs to use DeviceEvent structure (see IDL changes
2672         above). 
2673
2674         * registryd/deviceeventcontroller.c:
2675         Added DEControllerGrabMask structure to track keygrabs not only by
2676         modmask but by keyset as well; this allows us to do "global"
2677         (i.e. X) keygrabs on a per-key or keyset basis rather than always
2678         grabbing on AnyKey and then filtering after-the-fact.
2679         Bugfixes for event filtration mean that we don't get false matches
2680         on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
2681
2682         * registryd/deviceeventcontroller.c:
2683         Namespaced a number of static methods to use spi_ prefix.  Major
2684         revision to internals of global (i.e. X) key grabs.
2685
2686         * registryd/deviceeventcontroller.h:
2687         Removed keymask_list and added keygrabs_list to
2688         SpiDeviceEventController struct.
2689
2690         * test/simple-at.c:
2691         Added use of SPI_createAccessibleKeySet API when creating a
2692         listener for only one key.  Attach a listener to "shift spacebar
2693         SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
2694         X key event names to SPI key event names, so that listeners are
2695         registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
2696         
2697         * test/keysynth-demo.c:
2698         Changed (incorrect) use of X key event names (KeyPressed,
2699         KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
2700         
2701
2702 2001-12-12  Bill Haneman <bill.haneman@sun.com>
2703
2704         * libspi/accessible.c:
2705         Convert all AtkRole enumerations to Accessibility_Role enums when
2706         getting a role from an AtkObject.
2707         
2708         * cspi/spi_accessible.c:
2709         Complete the conversion of Accessibility_Role enums at runtime to
2710         AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
2711         role enums correctly match those given in spi-roletypes.h.  
2712         Re-synchronize the local names list for AccessibleRole_getName ().
2713         AccessibleRole_getName is now deprecated, since it duplicates the
2714         more reliable Accessible_getRoleName.
2715         Added some role types from Accessibility_Role.idl.
2716
2717         * idl/Accessibility_Role.idl:
2718         Added some role types used by AtkRole.
2719
2720 2001-12-12  Bill Haneman <bill.haneman@sun.com>
2721         
2722         * cspi/spi.h:
2723         * cspi/spi_registry.c:
2724         * cspi/spi_event.c:
2725         * cspi/cspi-bonobo-listener.c:
2726         Namespaced all methods that did not begin with an "SPI_" or
2727         "Accessible" prefix to "SPI_".  
2728
2729         * cspi/spi_main.c:
2730         Homogenized internal function namespace to "cspi_" for statics.
2731         
2732         * test/*.c:
2733         Patched tests to use the new CSPI API.
2734
2735         * docs/reference/cspi/at-spi-cspi-sections.txt:
2736         Updated docs to reflect namespace changes, and added a number of
2737         methods to the documentation.
2738         
2739         * registryd/registry.c:
2740         Changed use of strings and string hashes in listener event
2741         matching and parse_event_string to use GQuark, which is guaranteed
2742         unique.
2743         
2744         * registryd/registry.h:
2745         Squashed annoying warning.
2746
2747         * idl/Accessibility_Role.idl:
2748         Extended range of available Accessibility_Role values.
2749
2750         * cspi/spi_accessible.c:
2751         Re-ordered role names. 
2752
2753 2001-12-12  Bill Haneman <bill.haneman@sun.com>
2754
2755         * idl/Accessibility_Value.idl:
2756         Revert use of union back to CORBA_double, since the double type is
2757         more efficient and can contain the other types without loss of
2758         precision.
2759
2760         * idl/Accessibility_Accessible.idl:
2761         Added method Accessibility:Accessible:getRoleName, to complement
2762         Accessibility:Accessible:getRole.
2763
2764         * cspi/spi_accessible.c:
2765         * cspi/spi.h:
2766         Added C binding for above, Accessible_getRoleName (), and changed
2767         signature of Accessible_getRole () to return an AccessibleRole.
2768
2769         * cspi/spi-roletypes.h:
2770         Changed AccessibleRole_getName to return a char * instead of a
2771         const char *.  This method is now at least temporarily deprecated 
2772         in favor of asking Accessibles for their RoleNames directly.
2773
2774         * libspi/value.c:
2775         Revert to match Accessibility_Value.idl;
2776
2777         * cspi/spi_value.c:
2778         * cspi/spi.h:
2779         Change signature of AccessibleValue methods to use double rather
2780         than float.
2781
2782         * cspi/spi.h:
2783         * cspi/spi_accessible.c:
2784         Changed Accessible_getRole to return an AccessibleRole enum rather
2785         than a UTF-8 string.  The UTF-8 string can still be obtained via
2786         AccessibleRole_getName ().
2787         
2788         * test/test-simple.c:
2789         Add test_action.  Small fixup to match API change to Accessible_getRole.
2790
2791         * libspi/action.c:
2792         Bugfix for get_action_from_servant ().
2793
2794 2001-12-11  Michael Meeks  <michael@ximian.com>
2795
2796         * libspi/libspi.h: remove registry.h and
2797         desktop.h, deviceeventcontroller.h
2798
2799         * libspi/Makefile.am: remove registry.[ch],
2800         desktop.[ch], deviceeventcontroller.[ch]
2801
2802         * registryd/Makefile.am: add registry.[ch],
2803         desktop.[ch], rename registryd.c to registry-main.c.
2804         add deviceeventcontroller.[ch]
2805
2806 2001-12-11  Bill Haneman <bill.haneman@sun.com>
2807
2808         * test/simple-at.c:
2809         Replace setenv() call with putenv ().
2810
2811         * libspi/component.c:
2812         Bugfix in AccessibleComponent_getExtents (),
2813         (from Adi Dascal).
2814         
2815 2001-12-11  Michael Meeks  <michael@ximian.com>
2816
2817         * libspi/image.c (impl_getImageExtents): impl.
2818         (spi_image_class_init): upd.
2819
2820         * cspi/spi_image.c
2821         (AccessibleImage_getImageDescription): fix daft bug
2822         of mine (doh).
2823
2824         * test/test-simple.c (global_listener_cb): update
2825         to only quit if not --poke
2826         (main): catch --poke.
2827         (validate_accessible): upd. dumping, call test_image
2828         (test_image): impl.
2829
2830         * libspi/Makefile.am (IDL_DEPS): fixup the IDL
2831         dependencies.
2832
2833         * idl/Accessibility.idl: update all IDL includes.
2834
2835         * idl/*.idl - rename to namespace - this sucks, blame
2836         mjs' bad decision for oafd.
2837
2838         * test/test-simple.c (create_test_window): add more tests.
2839         (create_tree): split this out.
2840         (validate_accessible): bugfix.
2841
2842 2001-12-11  Michael Meeks  <michael@ximian.com>
2843
2844         * cspi/bonobo/cspi-bonobo-listener.c: 
2845         (cspi_kestroke_listener_unref),
2846         (cspi_event_listener_unref): impl. undoing previous
2847         homenous environment - for Bill.
2848
2849         * cspi/spi_table.c (long_seq_to_array): use
2850         malloc instead.
2851
2852         * cspi/spi_main.c: split out all bonoboish bits into
2853         bonobo/
2854
2855         * cspi/spi-impl.h: upd. typedefs.
2856
2857         * cspi/spi_registry.c: update to lowlevel API,
2858         return booleans to indicate success in some places.
2859
2860         * cspi/spi_event.c: update to lowlevel API.
2861
2862         * cspi/bonobo/Makefile.am: add.
2863
2864         * cspi/bonobo/cspi-lowlevel.h: add
2865
2866         * cspi/bonobo/cspi-bonobo.c: add
2867
2868         * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
2869
2870         * cspi/Makefile.am: remove spi-listener-impl.[ch],
2871         (SUBDIRS): add bonobo, link in the libs.
2872
2873         * cspi/spi-util.c: kill this file.
2874
2875         * TODO: merge in my bits.
2876
2877 2001-12-11  Michael Meeks  <michael@ximian.com>
2878
2879         * test/test-simple.c (test_value, test_table, main):
2880         remove unused variables causing warnings.
2881
2882         * configure.in: cleanup checks - require gail.
2883
2884 2001-12-11  Bill Haneman  <bill.haneman@sun.com>
2885
2886         * idl/Value.idl:
2887         Changed Value interface to use SValue (scalars) rather than
2888         assuming all values are floats.  This allows floats, doubles,
2889         longs, shorts, and unsigned values to be manipulated.
2890         Introduced Accessibility:SValue union.
2891
2892         * libspi/value.c:
2893         Updated to use new API above, and to work correctly with GValues
2894         of different types in AtkValue.
2895
2896         * cspi/spi_value.c:
2897         Updated to use new API above.  cspi's API is as yet unchanged.
2898
2899         * TODO: 
2900         Updated the Value revision action item.
2901         
2902 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
2903
2904         * test/test-simple.c:
2905         Added test_table (GtkTreeView widget in test window to follow).
2906         Un-commented test_value, added GtkRange widget.
2907         Added GtkTreeView widget with GtkListStore.  It passes regression
2908         test but leaks one SPI object for some reason.
2909
2910         * libspi/value.c:
2911         Fixed bug in impl__set_currentValue.
2912
2913 2001-12-10  Michael Meeks  <michael@ximian.com>
2914
2915         * cspi/spi_text.c: audit for exception handling,
2916         tolerating NULL object references safely etc.
2917
2918         * cspi/spi_value.c: ditto.
2919
2920         * cspi/spi_table.c (AccessibleTable_getSummary),
2921         (AccessibleTable_getAccessibleAt),
2922         (AccessibleTable_getRowHeader),
2923         (AccessibleTable_getColumnHeader),
2924         (AccessibleTable_getCaption): fix bugs hidden by
2925         incorrect casts.
2926         (long_seq_to_array): impl.
2927         (AccessibleTable_getSelectedRows),
2928         (AccessibleTable_getSelectedColumns): use it.
2929
2930 2001-12-10  Bill Haneman  <bill.haneman@sun.com>
2931
2932         * TODO:
2933         Added a TODO list (rough and short for now).
2934
2935         * cspi/spi_hyperlink.c:
2936         * cspi/spi_hypertext.c:
2937         Fixed macro name typos, and remove use of obsolete macro in 
2938         AccessibleHyperlink_getLink.
2939
2940         * cspi/spi_action.c:
2941         * cspi/spi_accessible.c:
2942         * cspi/spi_application.c:
2943         * cspi/spi_component.c:
2944         * cspi/spi_selection.c:
2945         * cspi/spi_text.c:
2946         * cspi/spi_value.c:
2947         Documentation fixes (removed return values from ref/unref methods).
2948
2949 2001-12-10  Michael Meeks  <michael@ximian.com>
2950
2951         * cspi/spi_action.c: audit for exception handling,
2952         tolerating NULL object references safely etc.
2953
2954         * cspi/spi_accessible.c: ditto.
2955
2956         * cspi/spi_component.c: ditto.
2957
2958         * cspi/spi_editabletext.c: ditto.
2959
2960         * cspi/spi_hyperlink.c: ditto.
2961
2962         * cspi/spi_hypertext.c: ditto.
2963
2964         * cspi/spi_image.c: ditto.
2965
2966         * cspi/spi_selection.c: ditto.
2967
2968 2001-12-10  Michael Meeks  <michael@ximian.com>
2969
2970         * configure.in: use cspi/libspi.pc.in instead.
2971
2972         * Makefile.am (pkgconfig_DATA): upd. to match.
2973
2974         * test/simple-at.c (report_focus_event): kill hacks around
2975         bad return values, use putenv not setenv
2976
2977         * libspi/desktop.c (impl_desktop_get_child_at_index): don't
2978         fire ChildGone - I killed it.
2979
2980         * libspi/component.c
2981         (impl_accessibility_component_get_extents): remove
2982         bogus return.
2983
2984         * idl/Accessible.idl: kill ChildGone exception.
2985
2986         * cspi/*.[ch]: kill int return from ref / unref.
2987         
2988         * cspi/spi_main.c (cspi_object_add_check): fold into
2989         (cspi_object_add): here.
2990
2991         * cspi/spi_component.c (AccessibleComponent_getExtents):
2992         handle exceptions elegantly.
2993
2994         * cspi/spi-private.h (cspi_check_ev_return),
2995         (cspi_return_if_fail): impl.
2996
2997         * cspi/spi_accessible.c: use extensively.
2998         (AccessibleStateSet_equals): add direct compare check.
2999
3000         * cspi/spi_selection.c: tolerate NULL objs, and check
3001         exceptions before return.
3002
3003         * cspi/spi-util.c (cspi_warn_ev): rename to
3004         (cspi_check_ev): this & don't pass ev in; no point.
3005
3006 2001-12-10  Michael Meeks  <michael@ximian.com>
3007
3008         * test/test-simple.c: use putenv not setenv
3009         (get_environment_vars): more chatty if you're not using
3010         the fun bits.
3011
3012         * test/simple-at.c: do the setenv so more people see the
3013         nice demo easily.
3014
3015 2001-12-10  Bill Haneman <bill.haneman@sun.com>
3016
3017         * libspi/registry.c:
3018         Changed check of CORBA_environment on notification to be a warning
3019         instead of an error for the moment, since we can recover from this
3020         error when caused by a queued notification from a dead app.
3021         
3022         * libspi/value.c:
3023         Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
3024         used by all current implementors of AtkValue), and coerce to
3025         CORBA_float. (Proper general case fix may require change to Value.idl).
3026
3027 2001-12-09  Bill Haneman <bill.haneman@sun.com>
3028
3029         * cspi/spi.h:
3030         * cspi/spi_event.c:
3031         * cspi/spi_accessible.c:
3032         Documentation fixes: added user_data params to documentation for 
3033         listeners and callbacks.  
3034
3035         * cspi/spi_accessible.c: 
3036         Changed AccessibleStateSet_compare to return a
3037         StateSet rather than return the difference set into a third parameter.
3038         
3039         
3040 2001-12-09  Bill Haneman <bill.haneman@sun.com>
3041
3042         * configure.in:
3043         Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
3044         remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
3045         it). 
3046
3047         * Makefile.am:
3048         Remove subdirectory po from SUBDIRS for now.
3049
3050         * at-bridge/bridge.c:
3051         Beefed up a couple of debug printouts.
3052         One-line fix for signal notification name formatting.
3053
3054         * libspi/accessible.c:
3055         Added assertion to spi_accessible_new ().
3056
3057         * libspi/application.c:
3058         Put #ifdef qualifiers around a printf.
3059
3060         * libspi/value.c:
3061         Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
3062
3063         * registryd/Makefile.am:
3064         * util/Makefile.am:
3065         Replaces use of XML_I18N_MERGE_SERVER_RULE with
3066         INTLTOOL_SERVER_RULE macro.
3067
3068         * test/simple-at.c:
3069         Added an event listener for several ATK signals, for
3070         testing and debugging.  Removed a few g_warnings.
3071         Added test output if focussed item implements the Value interface.
3072
3073         * test/test-simple.c:
3074         Added test_value () function (known not to pass at the moment, so
3075         not actually called yet.
3076         
3077 2001-12-08  Michael Meeks  <michael@ximian.com>
3078
3079         * at-bridge/bridge.c (bridge_focus_tracker),
3080         (emit_eventv): fix the same ref. leak.
3081         (register_atk_event_listeners): don't leak.
3082
3083         * cspi/spi-listener-impl.c (cspi_event): more 
3084         protection from client code.
3085
3086         * test/test-simple.c (test_desktop): unref the app.
3087
3088         * test/Makefile.am: upd. TESTS.
3089
3090         * at-bridge/bridge.c (bridge_exit_func): release the registry.
3091
3092         * test/keysynth-demo.c (keysynth_exit): unref the listeners.
3093
3094         * cspi/spi_accessible.c (Accessible_queryInterface): constify.
3095
3096         * cspi/spi_registry.c: constify in strings.
3097         (deregisterGlobalEventListenerAll): don't release the ref.
3098
3099         * cspi/spi.h: start removing redundant / conflicting
3100         gtkdoc comments, making the API readable at a glance :-)
3101         
3102         * cspi/spi_event.c (AccessibleEventListener_unref): impl.
3103
3104         * test/keysynth-demo.c (keysynth_exit, main): upd.
3105
3106         * test/simple-at.c (main, simple_at_exit): upd.
3107
3108         * test/test-simple.c (unutterable_horror): kill.
3109         (utterable_normal_derefs): kill.
3110         (main): upd & do a setenv before gtk_init, so that we
3111         can use memprof - and to save the pain of remembering
3112         this, if we're running under memprof - don't exit.
3113
3114         * cspi/spi_main.c (SPI_exit): return exit status
3115         for cspi.
3116         (SPI_event_quit): impl.
3117         (SPI_event_main): simplify.
3118         (cspi_is_gnome_app): kill.
3119         (SPI_init): kill isGNOMEapp arg.
3120
3121         * at-bridge/bridge.c (register_atk_event_listeners):
3122         re-instate the unref.
3123         (bridge_exit_func): don't re-activate the registry,
3124         protect vs. theoretical re-entry, use the
3125         AT_BRIDGE_SHUTDOWN env. var to determine whether to
3126         assert a clean shutdown - for regression tests.
3127
3128 2001-12-08  Abel Cheung  <maddog@linux.org.hk>
3129
3130         * configure.in: Comment out dummy i18n support for now,
3131           otherwise it fails to build.
3132         * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
3133           EXTRA_DIST. They are missing in tarball.
3134
3135 2001-12-07  Michael Meeks  <michael@ximian.com>
3136
3137         * util/magnifier.c: kill bonobo activation reg. race.
3138
3139         * libspi/component.c
3140         (impl_accessibility_component_get_extents): make it match
3141         it's sig.
3142
3143         * libspi/registry.c (_registry_notify_listeners):
3144         re-remove X headers & reconcile conflicts.
3145         (spi_listener_struct_free): bad conflict resolve.
3146         (impl_accessibility_registry_register_application):
3147         more bad merging fixed.
3148         (impl_accessibility_registry_deregister_application): ditto.
3149         (spi_registry_new): ditto.
3150         (spi_registry_init): don't have an applications field.
3151
3152 [ merge fixups2 branch to here ]
3153 2001-12-07  Michael Meeks  <michael@ximian.com>
3154
3155         * test/simple-at.c (report_focus_event),
3156         (report_focussed_accessible): remove g_warning debug.
3157
3158 2001-12-07  Michael Meeks  <michael@ximian.com>
3159
3160         * test/test-simple.c (validate_tree): comment out some checks.
3161         (test_desktop): app now not registered idly - horay.
3162
3163 2001-12-07  Michael Meeks  <michael@ximian.com>
3164
3165         * cspi/spi_registry.c
3166         (registerAccessibleKeystrokeListener): clean, stop it leaking
3167         great swathes of memory, and device event controller references.
3168         ensure we always pass valid sequences.
3169         (deregisterAccessibleKeystrokeListener): ditto.
3170         (generateKeyEvent): upd.
3171
3172         * at-bridge/bridge.c (bridge_key_listener): handle
3173         registry dead exception gracefully.
3174         (bridge_focus_tracker, emit_eventv): free ev.
3175
3176         * test/simple-at.c (report_focus_event): fix polarity.
3177
3178         * libspi/application.c (notify_listeners): kill the ev
3179         argument, and make sure we init the ev we use.
3180         (spi_application_object_event_listener): split out a chunk
3181         (get_atk_object_ref): here & fixup.
3182         (reverse_lookup_name_for_toolkit_event): make const.
3183         (spi_application_toolkit_event_listener): fixup, kill leaks
3184         ref problems etc.
3185
3186         * at-bridge/bridge.c (register_atk_event_listeners):
3187         don't unref the noop object - causes grief.
3188
3189         * libspi/registry.c: remove the X headers.
3190         turn off the debug churn.
3191
3192         * libspi/accessible.c (spi_accessible_new_return): only
3193         release the ref if we are supposed to [doh]
3194
3195         * test/simple-at.c (report_button_press, report_focus_event):
3196         guard vs. unexpected exit.
3197
3198         * at-bridge/bridge.c (gtk_module_init): prune printf.
3199         (bridge_exit_func): fix app unref.
3200
3201         * libspi/Makefile.am: don't install registry or desktop.h
3202
3203         * libspi/*.h: update includes.
3204
3205         * libspi/application.h: don't include ourself, or
3206         other redundant headers.
3207
3208 2001-12-06  Michael Meeks  <michael@ximian.com>
3209
3210         * libspi/accessible.c
3211         (get_accessible_from_servant): impl.
3212         Upd. all CORBA impl.s to use it killing cut and paste.
3213
3214         * cspi/spi_main.c (cspi_cleanup): guard vs. double
3215         invokes.
3216         (SPI_init): register atexit cleanup handler here.
3217
3218 2001-12-06  Michael Meeks  <michael@ximian.com>
3219
3220         * at-bridge/bridge.c (gtk_module_init): g_error on
3221         activation exception
3222
3223 2001-12-06  Michael Meeks  <michael@ximian.com>
3224
3225         * at-bridge/bridge.c (gtk_module_init): some sort of
3226         confusing merge clash - reverted.
3227         (bridge_idle_init): ditto.
3228
3229         * test/test-simple.c (main, utterable_normal_derefs):
3230         merge from Bill - somehow not committed.
3231
3232 2001-12-06  Michael Meeks  <michael@ximian.com>
3233
3234         * libspi/value.c (spi_value_class_init): upd.
3235         (spi_value_finalize): kill.
3236
3237         * libspi/table.c (spi_table_finalize): kill.
3238         (spi_table_interface_new): upd.
3239         (spi_table_class_init): upd.
3240         (get_table_from_servant): impl.
3241         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3242
3243         * libspi/selection.c (spi_selection_finalize): kill.
3244         (spi_selection_interface_new): upd.
3245         (spi_selection_class_init): upd.
3246         (get_selection_from_servant): impl.
3247         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3248
3249         * libspi/relation.c (spi_relation_finalize): kill.
3250         (spi_relation_class_init, spi_relation_new): upd
3251
3252         * libspi/image.c (spi_image_finalize): kill.
3253         (spi_image_class_init): upd.
3254         (spi_image_interface_new): upd.
3255         (get_image_from_servant): impl.
3256         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3257
3258         * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
3259         (spi_hyperlink_finalize): kill.
3260         (spi_hyperlink_new): upd.
3261         (get_hyperlink_from_servant): impl.
3262         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3263
3264         * libspi/hypertext.c (spi_hypertext_interface_new): upd.
3265         (spi_hypertext_finalize): kill.
3266         (spi_hypertext_class_init): upd.
3267         (get_hypertext_from_servant): impl.
3268         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3269
3270         * libspi/editabletext.c (spi_editable_text_finalize): kill.
3271         (spi_editable_text_interface_new): upd.
3272         (get_editable_text_from_servant): impl.
3273         Upd. all CORBA impl.s to use it killing yet more cut and paste.
3274         
3275         * libspi/text.c (get_text_from_servant): impl.
3276         All impls - update to use it killing more cut and paste,
3277         also fix bad string returns on duff args ( a somewhat
3278         impossible case to handle - but hey ).
3279         (spi_text_construct): impl.
3280         (spi_text_interface_new): upd.
3281         (spi_text_object_finalize): kill.
3282
3283         * libspi/component.c
3284         (accessibility_component_object_finalize): kill.
3285         (spi_component_class_init): upd.
3286         (get_component_from_servant): impl. helper to kill cut & paste.
3287         (impl_accessibility_component_contains): 
3288         (impl_accessibility_component_get_accessible_at_point): 
3289         (impl_accessibility_component_get_position): 
3290         (impl_accessibility_component_get_extents): 
3291         (impl_accessibility_component_get_mdi_z_order): 
3292         (impl_accessibility_component_get_layer): 
3293         (spi_component_interface_new): upd.
3294
3295         * libspi/action.c (spi_action_finalize): kill.
3296         (spi_action_class_init): upd. inherit from SpiObject.
3297         (spi_action_interface_new): upd.
3298         (get_action_from_servant): impl. helper to reduce cut & paste.
3299         (impl_getKeyBinding, impl_getName, impl_doAction),
3300         (impl_getDescription): Use it everywhere.
3301
3302         * cspi/spi_main.c (get_live_refs): a pointer hash.
3303         (spi_object_hash, spi_object_equal): comment out.
3304         There are issues with CORBA object hashing that need
3305         solving.
3306
3307         * libspi/application.c (spi_application_init),
3308         (spi_application_new): upd.
3309
3310         * libspi/accessible.c (spi_accessible_object_finalize): kill.
3311         (spi_accessible_class_init): upd.
3312         s/accessible/object/ in epv methods.
3313
3314 2001-12-05  Bill Haneman <bill.haneman@sun.com>
3315
3316         * at-bridge/bridge.c:
3317         Reorder the bridge initialization into the bridge gtk_module_init,
3318         an immediate call to bridge_register_app, and an idle_add for
3319         register_atk_event_listeners (the only code that *must* wait until
3320         GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
3321         the activation, creates the application's Accessible object, and
3322         queues the bridge_idle_init function.  Restored call to
3323         Accessibility_Registry_deregisterApplication().  
3324         Prior to making this call we obtain a new reference to the
3325         registry, which is a temporary hack that helps us handle apps that
3326         shut down the bonobo mainloop before we get there.
3327
3328         * libspi/registry.c:
3329         Fix string leakage in debug block, and don't segv if a an app
3330         dies before its event notifications have been propagated.
3331
3332         * cpi/spi_util.c:
3333         Modify cspi_check_ev() to call g_warning() rather than g_error(),
3334         as stopgap measure until we get proper exception handling when 
3335         objects die during or before interrogation.  
3336
3337         * cspi/spi_main.c:
3338         * cspi/spi.h:
3339         Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
3340         Also changed default value of is_gnome_app to TRUE.
3341
3342         * test/simple-at.c:
3343         * test/keysynth-demo.c:
3344         Changed use of SPI_init and SPI_event_main to reflect API change above.
3345
3346         * test/simple-at.c:
3347         Made report_focus_event check the warning value from getName
3348         before reporting on focussed accessible; simplifies handling of
3349         notifications from dead objects.
3350
3351         * test/test-simple.c: (Changes not in this patch since source is
3352         not in CVS ?)
3353         
3354 2001-12-05  Michael Meeks  <michael@ximian.com>
3355
3356         * registryd/registryd.c (main): protect against
3357         bonobo-activation startup race condition.
3358
3359         * cspi/spi_main.c (cspi_object_add_check): cope
3360         with the exception elegantly.
3361
3362         * idl/Accessible.idl: decl. ChildGone
3363
3364         * libspi/desktop.c (spi_desktop_dispose): impl.
3365         (spi_desktop_class_init): upd.
3366         (spi_desktop_add_application),
3367         (spi_desktop_remove_application),
3368         (abnormal_application_termination): impl.
3369         (impl_desktop_get_child_at_index): re-impl.
3370
3371         * libspi/registry.c
3372         (impl_accessibility_registry_deregister_application),
3373         (impl_accessibility_registry_register_application): 
3374         kill excessive debug clutter.
3375
3376         * test/test-simple.c (test_misc): test some NULL
3377         tolerance. (main): upd.
3378
3379         * cspi/spi_main.c (cspi_accessible_is_a): a NULL
3380         implements no interfaces - so let's not crash.
3381
3382         * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
3383
3384         * libspi/accessible.c (spi_accessible_new_return): impl.
3385         helper to calm the cut and paste, to cope with
3386         NULL AtkObjects effectively and efficiently, and to kill
3387         the referencing bugs.
3388
3389         * libspi/table.c (impl_getAccessibleAt),
3390         (impl_getRowHeader, impl_getColumnHeader): upd.
3391
3392         * libspi/hyperlink.c (impl_getObject): upd.
3393
3394         * libspi/accessible.c
3395         (impl_accessibility_accessible_get_child_at_index): upd.
3396
3397         * libspi/component.c
3398         (impl_accessibility_component_get_accessible_at_point): upd.
3399
3400         * test/test-simple.c (test_editable_text, test_text): impl.
3401         some simple tests.
3402
3403         * cspi/spi_editabletext.c
3404         (AccessibleEditableText_insertText): constify.
3405
3406         * test/test-simple.c (focus_me): make more robust.
3407
3408         * libspi/accessible.c: remove some printfs in methods that
3409         we test and work fine, so we can get a clean tree dump.
3410
3411         * test/test-simple.c (validate_accessible),
3412         (validate_tree): make tree dumping pretty too.
3413
3414         * at-bridge/bridge.c (bridge_signal_listener): upd. so
3415         it builds without debug on.
3416
3417         * test/test-simple.c (validate_accessible): fix the most
3418         ludicrous bug.
3419
3420         * cspi/spi_main.c (spi_object_release): leave the nicely
3421         blanked memory around if in debug mode.
3422
3423         * cspi/spi-listener-impl.c (cspi_event): use add_check.
3424
3425 [committed to fixups2]
3426 2001-12-05  Michael Meeks  <michael@ximian.com>
3427
3428         * libspi/editabletext.c
3429         (spi_editable_text_class_init): g_type_class_peek_parent,
3430         not interface peek - so we finalize cleanly.
3431
3432         * libspi/accessible.c (spi_accessible_new): kill debug.
3433
3434         * test/test-simple.c (validate_accessible): fix ref.
3435         leak, print strings before freeing them; sigh, comment a
3436         chunk out due to strangeness.
3437         (validate_tree): unref the child after use.
3438
3439         * cspi/spi_component.c (AccessibleComponent_getLayer):
3440         add missing break statement, switch on zlayer not the
3441         uninitialized retval.
3442
3443         * cspi/spi_main.c (cspi_object_add): add assert, local ref
3444         before (possibly re-entering) remote unref.
3445
3446         * test/simple-at.c (main): unref the desktop.
3447
3448         * cspi/spi_accessible.c (cspi_accessible_is_a): move 
3449         into:
3450         
3451         * cspi/spi_main.c (cspi_accessible_is_a): here to 
3452         isolate bonobo API usage more.
3453
3454         * libspi/registry.c (impl_accessibility_registry_register_application): 
3455         prune bogus comment.
3456
3457 2001-12-04  Michael Meeks  <michael@ximian.com>
3458
3459         * test/test-simple.c (validate_tree): upd.
3460         IndexInParent check to make it more lucid.
3461         (validate_accessible): dump the tree.
3462
3463         * libspi/accessible.c (de_register_public_ref),
3464         (get_public_refs): impl.
3465         (spi_accessible_new): make more efficient & intuitive.
3466         Now IndexInParent check works.
3467
3468 2001-12-04  Michael Meeks  <michael@ximian.com>
3469
3470         * cspi/spi-util.h: remove.
3471
3472         * cspi/spi.h: move SPI_freeString here
3473
3474         * libspi/component.c (impl_accessibility_component_get_layer): 
3475         warning fixage.
3476         (impl_accessibility_component_get_mdi_z_order): ditto,
3477         return -1 on error - is this ok ?
3478
3479         * test/test-simple.c (test_application): impl.
3480
3481         * cspi/spi_accessible.c (Accessible_getApplication),
3482         (Accessible_isApplication): impl.
3483
3484         * libspi/registry.c (spi_listener_struct_free): release
3485         the CORBA reference too.
3486
3487         * libspi/accessible.c
3488         (impl_accessibility_accessible_get_parent): fix ref leak.
3489
3490         * libspi/registry.c (spi_registry_new): make the registry
3491         immortal - we don't want it to go away ever.
3492
3493         * libspi/application.c
3494         (spi_accessible_application_finalize): impl. cleanup.
3495
3496         * cspi/spi_registry.c
3497         (deregisterGlobalEventListenerAll),
3498         (deregisterGlobalEventListener),
3499         (deregisterAccessibleKeystrokeListener): fix ref leak.
3500
3501         * cspi/spi_main.c (SPI_init): remove redundant ref.
3502
3503         * test/test-simple.c (unutterable_horror): impl. to force a
3504         clean shutdown.
3505         (main): use it.
3506
3507         * libspi/registry.c
3508         (impl_accessibility_registry_deregister_application): release
3509         the application when we de-register it.
3510
3511         * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
3512         until we have the infastructure to get it right.
3513
3514 2001-12-03  Michael Meeks  <michael@ximian.com>
3515
3516         * libspi/Makefile.am: only build eventlistener.[ch]
3517
3518         * libspi/accessible.c
3519         (impl_accessibility_accessible_get_child_at_index): don't leak.
3520
3521         * at-bridge/bridge.c (bridge_exit_func): cope with an exit
3522         before we hit the idle handler.
3523
3524         * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
3525         debugging than exit.
3526
3527         * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
3528
3529         * libspi/listener.c (impl_notify_event): check source
3530         not NIL before unref.
3531
3532         * libspi/registry.c (impl_registry_notify_event): ditto.
3533
3534         * libspi/eventlistener.c
3535         (impl_accessible_event_notify_event): unref the source.
3536
3537         * libspi/accessibleeventlistener.c
3538         (impl_accessible_event_notify_event): unref the source.
3539
3540         * idl/Event.idl: remove 'hash_id' attribute - of no
3541         concievable use.
3542
3543         * libspi/application.c (notify_listeners): upd list
3544         iteration & sig.
3545         (spi_application_object_event_listener), 
3546         (spi_application_toolkit_event_listener): upd to do correct
3547         CORBA ref counting.
3548
3549         * libspi/registry.c
3550         (_registry_notify_listeners): update.
3551         (parse_event_type): this method also leaks like a sieve.
3552         (impl_accessibility_registry_deregister_global_event_listener): 
3553         fix ETYPE_WINDOW case.
3554
3555         * libspi/application.c
3556         (impl_accessibility_application_register_object_event_listener): 
3557         kill leak.
3558
3559         * libspi/hyperlink.c (impl_getObject): fix ref mistake.
3560
3561         * libspi/hypertext.c (impl_getLink): ditto.
3562
3563         * cspi/spi_main.c (cspi_object_add): remove
3564         bogus CORBA_Object_duplicate.
3565
3566         * cspi/spi-listener-impl.c (cspi_event): dup/ref
3567         on the object_add.
3568
3569         * cspi/spi_accessible.c
3570         (Accessible_getRelationSet): fix leak / referencing issue.
3571
3572         * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
3573         (cspi_object_add, cspi_object_unref): upd.
3574         (spi_object_release, get_live_refs): impl.
3575         (cspi_cleanup): simplify.
3576
3577         * *.[ch]: s/boolean/SpiBoolean/
3578
3579         * cspi/spi_accessible.c (role_names): actualy order so it
3580         corresponds with the enum !
3581
3582         * test/test-simple.c (test_roles): check some role strings
3583         vs. enums to detect offset errors.
3584
3585 2001-12-01  Michael Meeks  <michael@ximian.com>
3586
3587         * cspi/spi_main.c (cspi_object_add_check): impl. helper.
3588
3589         * cspi/spi_accessible.c (Accessible_getChildAtIndex):
3590         check ev before 
3591         (Accessible_getChildAtIndex): use cspi_add_check so we
3592         check the ev before using a (possibly) invalid value.
3593
3594         * libspi/accessible.c
3595         (impl_accessibility_accessible_get_parent): don't segv
3596         on a NULL parent.
3597
3598         * at-bridge/bridge.c (gtk_module_init): upd.
3599         (bridge_property_event_listener): don't leak strings
3600         and events !
3601         (bridge_state_event_listener),
3602         (bridge_property_event_listener): don't use a static
3603         buffer in case of recursive event emission &
3604         re-enterancy - split out the swathe of cut and paste
3605         into:
3606         (emit_eventv): and fix 2 ref leaks here & comply to the
3607         coding style.
3608         (bridge_register_app): rename to 
3609         (bridge_idle_init): this and kill arg parsing, split
3610         various inits & bonobo-activation registration to module
3611         init time, kill referencing error.
3612         (bridge_exit_func): fix the same leak.
3613         (bridge_focus_tracker): don't leak event structures
3614         and strings.
3615         (bridge_signal_listener): more leakage and cut & paste
3616         fixage.
3617         (bridge_key_listener): return the result - FIXME is
3618         this polarity correct ?
3619         (accessibility_keystroke_from_atk_key_event): rename
3620         (accessibility_init_keystroke_from_atk_key_event): and stop
3621         leakage.
3622         (gtk_module_init): return a value - not that it is checked by
3623         Gtk - but hey.
3624         (bridge_key_listener): register my horror at casting between
3625         IDL defined structs.
3626         (bridge_get_registry): kill - not used.
3627
3628         * cspi/spi_accessible.c (Accessible_getRole): make return const.
3629
3630         * test/test-simple.c (test_roles): impl.
3631         (test_desktop, validate_accessible, validate_tree): impl.
3632
3633         * cspi/spi_accessible.c (role_names): fixup bogus
3634         MAX_ROLES setup, make constants const for efficient linkage
3635         (AccessibleRole_getName): conform to coding style, make
3636         return 'const'
3637
3638 2001-11-30  Michael Meeks  <michael@ximian.com>
3639
3640         * cspi/spi.h: add missing prototype.
3641
3642         * libspi/registry.c (spi_listener_struct_new): fix sig.
3643
3644         * test/Makefile.am: add test-simple
3645
3646         * test/test-simple.c: add
3647
3648         * test/test.sh: add.
3649
3650         * cspi/spi_main.c (SPI_init): make SPI_inited module global,
3651
3652         * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
3653         do it straight - since otherwise we often get an activation race.
3654
3655 [ work before Bill duplicated a chunk of it ... ]
3656 2001-11-30  Michael Meeks  <michael@ximian.com>
3657
3658         * libspi/keystrokelistener.c
3659         (spi_keystroke_listener_class_init): fixup arg
3660         count (doh).
3661
3662         * libspi/eventlistener.c
3663         (spi_event_listener_class_init): ditto.
3664
3665         * tests/test.sh: add.
3666
3667         * cspi/spi-listener-impl.h: update macros.
3668
3669         * cspi/spi-listener-impl.c
3670         (cspi_event_listener_remove_callback): add
3671         correct pre-conditions.
3672
3673         * cspi/spi_main.c (SPI_exit): guard vs. double
3674         exits, exit the mainloop nicely.
3675         (SPI_event_main): make more sense.
3676         (SPI_init): move the atexit evilness here so we
3677         always do it (yuck).
3678         (SPI_event_main): upd.
3679
3680         * test/simple-at.c: update for listener changes.
3681
3682         * registryd/registryd.c (main): prune kruft.
3683
3684         * libspi/libspi.h: upd.
3685
3686         * libspi/eventlistener.[ch]: rename broken macros.
3687
3688         * libspi/accessibleeventlistener.[ch]: remove.
3689
3690         * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
3691
3692         * test/test-simple.c: Add - automated tests.
3693
3694         * cspi/spi-listener-impl.c (cspi_event),
3695         (cspi_key_event): add user_data to invoke.
3696         (cspi_keystroke_listener_finalize): impl.
3697         (cspi_keystroke_listener_class_init): upd.
3698
3699         * cspi/spi_event.c
3700         (createAccessibleEventListener),
3701         (AccessibleEventListener_addCallback),
3702         (createAccessibleKeystrokeListener),
3703         (AccessibleKeystrokeListener_addCallback): upd.
3704
3705         * libspi/deviceeventcontroller.c
3706         (spi_device_event_controller_check_key_event): add public proto.
3707
3708         * libspi/registry.c
3709         (impl_accessibility_registry_deregister_global_event_listener): 
3710         always init listeners.
3711         (_registry_notify_listeners): yes it is.
3712
3713         * cspi/spi-listener-impl.c (cspi_key_event): 
3714         move debug to here.
3715         (cspi_event_listener_finalize): impl.
3716         (cspi_event_listener_class_init): hook up.
3717         (event_handler_new, event_handler_free),
3718         (event_list_remove_by_callback): impl.
3719         (cspi_event_listener_remove_callback),
3720         (cspi_keystroke_listener_remove_callback),
3721         (cspi_keystroke_listener_add_callback),
3722         (cspi_event_listener_add_callback): upd.
3723
3724         * libspi/keystrokelistener.c
3725         (keystroke_listener_object_finalize): kill
3726         (spi_keystroke_listener_class_init): upd.
3727         (spi_keystroke_listener_add_callback),
3728         (spi_keystroke_listener_remove_callback): kill,
3729         use signals.
3730         (impl_key_event): prune drasticaly.
3731
3732         * libspi/eventlistener.c
3733         (spi_event_listener_add_callback),
3734         (spi_event_listener_remove_callback): kill, use
3735         signals.
3736         (impl_accessible_event_notify_event): upd.
3737         (spi_event_listener_object_finalize): remove.
3738
3739         * libspi/Makefile.am: use eventlistener.[ch]
3740
3741 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
3742
3743         * libspi/registry.c (_registry_notify_listeners):
3744         Changed listener loop iteration to use preferred convention.
3745         Got rid of string memory leaks caused be calling g_strconcat
3746         inside function calls.
3747
3748         * libspi/registry.c (parse_event_type):
3749         Stopped g_strconcat memory leaks, free the g_strsplit return,
3750         g_strdup the split pieces when used, etc.
3751
3752 2001-12-04  Bill Haneman  <bill.haneman@sun.com>
3753
3754         * idl/State.idl: 
3755         Change method 'compare' to return a 'difference set' rather than
3756         taking a StateSet as an out parameter (more Java-friendly).
3757
3758         * idl/Accessible.idl:
3759         Added CORBA struct 'BoundingBox', to faciliate API changes below:
3760         
3761         * idl/Component.idl:
3762         * idl/Image.idl:
3763         Changed methods 'getExtents' and 'getImageExtents' in these
3764         interfaces to return a BoundingBox structure.  
3765         (getPosition and getSize are redundant and possibly should be
3766         removed, rather than creating a corresponding Point struct.)
3767
3768         * cspi/spi_component.c:
3769         Modify implementation of getExtents to reflect the above IDL
3770         change.
3771         
3772         * cspi/spi_image.c:
3773         * cspi/spi.h:
3774         Add (missing) AccessibleImage_getExtents () API.
3775
3776         * docs/reference/cspi/at-spi-cspi-sections.txt:
3777         Added AccessibleImage_getImageExtents () to docs.
3778         
3779 2001-12-03  Bill Haneman  <bill.haneman@sun.com>
3780
3781         * idl/Component.idl:
3782         Added two methods, getLayer () and getMDIZOrder (), to reflect
3783         the new ATK methods atk_object_get_layer and
3784         atk_object_get_mdi_z_order. (Which arguably should be part of the
3785         AtkComponent API and AtkObject).  Also added an enum,
3786         ComponentLayer, for the first method's return value.
3787
3788         * libspi/component.c:
3789         Added implementations for these methods.
3790
3791         * cspi/spi_component.c:
3792         * cspi/spi.h:
3793         Added cspi binding methods for above, 
3794         AccessibleComponent_getLayer() and
3795         AccessibleComponent_getMDIZOrder().
3796         Added cspi enum 'AccessibleComponentLayer'.
3797
3798         * docs/reference/cspi/at-spi-cspi-sections.txt:
3799         Added above methods to docs.
3800
3801         * cspi/spi-impl.h:
3802         * cspi/spi*.[ch]:
3803         Changed typedef for 'boolean' type (and all references to it) to
3804         SPIBoolean, to avoid keyword clashes with C++.
3805
3806         * test/simple-at.c:
3807         Changed usages of 'boolean' to SPIBoolean.
3808
3809         * test/keysynth-demo.c:
3810         Changed usages of 'boolean' to 'gboolean' (since this is a gnome
3811         app), except where SPIBoolean is required by the callbacks API.
3812         
3813 2001-12-02  Bill Haneman  <bill.haneman@sun.com>
3814
3815         * cspi/spi_registry.c:
3816         Removed obsolete X event loop for passive keygrabs (which now
3817         lives in libspi).
3818
3819         * registryd/registryd.c:
3820         Removed unnecessary call to gdk_init() [cruft]. This also allows
3821         removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
3822         * configure.in.
3823
3824 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
3825
3826         * docs/reference/cspi:
3827         Included docs for SPI_freeString in generated documentation.
3828
3829         * cspi/spi-util.c:c
3830         Renamed spi_freeString to SPI_freeString, for consistency.  Added
3831         documentation for this function.
3832
3833         * cspi/spi-util.h:
3834         Renamed spi_freeString to SPI_freeString, for consistency.  
3835         Removed obsolete method declaration string_from_corba_string.
3836
3837         * test/keysynth-demo.c:
3838         Small tweak to comments.
3839
3840         * test/simple-at.c:
3841         Stopped leaking the strings returned from CSPI. 
3842
3843 2001-11-28  Bill Haneman  <bill.haneman@sun.com>
3844
3845         Merged Michael's branch (see his ChangeLog entries below).
3846         
3847         * at-bridge/bridge.c: Explicitly hold a ref to the registry while
3848         bridge is alive, release on exit.
3849         
3850         * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
3851         Fix type check macro.
3852         
3853         * cspi/spi_event.c:
3854         Added AccessibleKeystrokeListener_unref() method to reduce leakage.
3855         
3856         * cspi/spi_main.c: 
3857         Added is_gnome_app static, and method cspi_is_gnome_app(), 
3858         so we can call the appropriate shutdown routine at exit in SPI_exit.
3859         
3860         * cspi/spi_main.c (cspi_object_ref):
3861         Duplicate the corba object passed in, since we're keeping it around.
3862         
3863         * cspi/SPI_exit.c, cspi_cleanup:
3864         Moved the releasing of the live refs to its own function, so we
3865         can put it in g_atexit ().  Call the appropriate shutdown API
3866         depending on whethe calling client is a gnome app or not
3867         (bonobo_main_quit or CORBA_ORB_shutdown).
3868         
3869         * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
3870         Unref the listener when this method is called, after
3871         deregistration.  Updated the API docs to note this behavior.
3872
3873         * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
3874         Bugfixes: Ref the bonobo object when returning a parent or child 
3875         reference, or an AccessibleRelation.  Generally made sure
3876         BonoboObject refcount is incremented whenever we return an
3877         Accessible.
3878
3879         * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
3880         Fixed typo/bug in signal declaration.
3881         
3882         * libspi/accessibleeventlistener.h:
3883         Fixed a type macro.
3884
3885         * libspi/application.c (spi_application_new):
3886         Fixed leak in initialization.
3887
3888         * libspi/desktop.c:
3889         Remembered to increment bonobo-object refcount when returning
3890         children (applications) from desktop object.
3891         Added (empty) finalize method.
3892
3893         * libspi/deviceeventcontroller.c:
3894         Hold a ref to listeners inside DEControllerKeyListeners.
3895         Added dec_key_listener_free() method.  Use prepend instead of
3896         append in key_listener list.  Fixed some refcount madness and
3897         leaks in the listener registration/deregistration - deregistration
3898         now calls dec_key_listener_free() on listeners, and on the
3899         temporarily constructed dec_key_listener() used to perform the search/match.
3900
3901         * libspi/hypertext.c (spi_hypertest_finalize):
3902         Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
3903         class.  Also fixed spi_hypertext_interface_new() and
3904         SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
3905
3906         * libspi/hypertext.h: 
3907         Removed pointless and duplicate AtkObject pointer from
3908         SpiHypertextClass.
3909
3910         * libspi/keystrokelistener.c:
3911         Fixed incorrect type of keystroke_listener_parent_class,
3912         renamed keystroke_listener_object_finalize to
3913         spi_keystroke_listener_object_finalize.
3914         Fixed typo in signal declaration
3915         (spi_keystroke_listener_class_init).
3916
3917         * libspi/registry.c:
3918         Added funcsions spi_listener_struct_new() and
3919         spi_listener_struct_free() to help with memory management issues.
3920         We also now use these methods instead of gnew + poking stuff into
3921         the struct, and to decrement listener counts/free the listeners
3922         when deregistering them.
3923         Fix more refcount bugs in getDesktop() and
3924         getDeviceEventController().  
3925
3926         * test/simple-at.c:
3927         De-ref the desktop after enumerating the applications.  Explicitly
3928         decrement the refcounts on the created listeners on exit (using
3929         _unref for keystroke listeners, and via the
3930         deregisterGlobalEventListenerAll command for other event
3931         listeners).
3932         
3933 2001-11-27  Michael Meeks  <michael@ximian.com>
3934
3935         * cspi/spi-listener.h: fixup enum.
3936
3937 2001-11-27  Michael Meeks  <michael@ximian.com>
3938
3939         * cspi/spi-listener-impl.c (cspi_event_listener_new),
3940         (cspi_keystroke_listener_new): Use the cspi variants.
3941
3942 2001-11-26  Michael Meeks  <michael@ximian.com>
3943
3944         * test/keysynth-demo.c: fix 2 compile warnings, missing
3945         type in decl. etc.
3946
3947         * test/simple-at.c (report_focussed_accessible),
3948         (report_focus_event, report_button_press),
3949         (check_property_change, is_command_key),
3950         (report_ordinary_key_event, report_command_key_event): upd.
3951
3952         * util/mag_client.h: include pre-requisites.
3953
3954         * libspi/accessibleeventlistener.c
3955         (spi_event_listener_object_finalize): free any lingering
3956         callbacks.
3957         
3958         * libspi/keystrokelistener.c
3959         (keystroke_listener_object_finalize): ditto.
3960
3961         * cspi/spi-listener-impl.[ch]: Add to implement cspi style
3962         callbacks, with cspi types.
3963         
3964         * cspi/spi_event.c (createAccessibleEventListener): chain to
3965         (AccessibleEventListener_addCallback): here.
3966         (createAccessibleKeystrokeListener): chain to 
3967         (AccessibleKeystrokeListener_addCallback): here.
3968
3969         * libspi/keystrokelistener.c
3970         (spi_keystroke_listener_class_init): add signal.
3971         (impl_key_event): emit the event.
3972         (boolean_handled_accumulator): impl.
3973         (marshal_BOOLEAN__POINTER): add, gack.
3974
3975         * libspi/accessibleeventlistener.c
3976         (spi_event_listener_class_init): add signal.
3977         (impl_accessible_event_notify_event): emit the signal &
3978         make the loop efficient.
3979         (spi_event_listener_add_callback): prepend the callback.
3980
3981         * libspi/accessibleeventlistener.h: add an 'event' signal,
3982         decl type on callback.
3983
3984         * libspi/keystrokelistener.h: ditto.
3985
3986         * cspi/spi-listener.h: make methods typesafe and
3987         make them use the new event typedefs.
3988
3989         * test/simple-at.c (report_focussed_accessible):
3990         include mag_client.h
3991         Use *(void *)text_interface not the other thing.
3992         
3993         * configure.in: add gtk to registryd bits - since we use
3994         gdk there ( why ? )
3995
3996         * util/magnifier.c: include libbonobo.h
3997         
3998 2001-11-25  Bill Haneman  <bill.haneman@sun.com>
3999
4000         * test/keysynth-demo.c:
4001         Turned this into a simple scanning keyboard, to demonstrate the
4002         use of g_timeout_add () as a means of creating timers for
4003         scanning, and the use of GtkStyle for visually indicating when
4004         virtual keyboard elements are selected.
4005
4006         keysynth-demo now listens to any keyboard keys with zero-valued
4007         keycodes (i.e. 'unused' keys) and interprets them as
4008         single-switches.
4009
4010         Reworked the shiftlatch code so that shift-down state isn't held
4011         for long periods (it's only synthesized immediately prior to
4012         the keysynth event it's modifying).  Note that shiftlatch in this
4013         demo is a convenience, not intended to take the place of AccessX 
4014         which is the better choice for getting 'sticky' modifier keys.
4015
4016         * libspi/deviceeventcontroller.c:
4017         * at-bridge/bridge.c:
4018         * cspi/spi_registry.c:
4019         Removed some debug print stuff, and put other verbosity in #ifdef
4020         blocks.
4021
4022         * util/magnifier.c:
4023         * util/mag_image.h:
4024         Implemented some more of the magnifier IDL for the simple
4025         magnifier: namely, getZoomRegionParams. 
4026         Added mag_x and mag_y members to MagnifierData struct, aid of this
4027         implementation.
4028         Added GtkWindow::realize signal handler to magnifier, to keep it
4029         from receiving keyboard focus from the WM.
4030
4031 2001-11-23  Mark McLoughlin  <mark@skynet.ie>
4032
4033         * cspi/spi-private.h: my guess at what michael forgot
4034         before he ran off to NZ :-)
4035
4036 2001-11-23  Michael Meeks  <michael@ximian.com>
4037
4038         * cspi/spi_event.c (AccessibleEventListener_removeCallback):
4039         comment out non existant method invoke so we link.
4040
4041         * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
4042         use bonobo_exception_get_text for more friendly warnings.
4043
4044         * cspi/spi.c (Obj_Add): move into spi_main & rename
4045         spi_object_add; kill spi.c
4046
4047         * cspi/spi_registry.c
4048         (deregisterGlobalEventListener),
4049         (deregisterGlobalEventListenerAll),
4050         (registerGlobalEventListener): fix exception leaks.
4051
4052         * cspi/spi_main.c (spi_exception): impl. helper, so we
4053         don't leak exceptions.
4054
4055         * cspi/spi_selection.c
4056         (AccessibleSelection_deselectSelectedChild): return the
4057         success state.
4058
4059         * cspi/spi_main.c (spi_ev): impl; hack - gack.
4060         (spi_registry): ditto.
4061         (SPI_init): guard against double inits.
4062
4063         * cspi/*.c: use spi_ev (), and spi_registry () where
4064         appropriate - a temporary hack until we have something
4065         better. Use spi_object_add
4066
4067 2001-11-22  Michael Meeks  <michael@ximian.com>
4068
4069         * cspi/Makefile.am: re organise, install the headers.
4070
4071         * cspi/*.h: add G_BEGIN/END_DECLS
4072
4073 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
4074
4075         * test/simple-at.c:
4076         Added non-preemptive keylistener for key events with no modifiers
4077         and shift-only modifier.
4078
4079         * libspi/keystrokelistener.c:
4080         Removed some verbose diagnostics printout.
4081
4082         * cspi/spi_registry.c:
4083         Fixed a bug that caused all key listeners to be registered as
4084         pre-emptive.
4085         
4086         * libspi/deviceeventcontroller.c:
4087         Fixed bug that caused XGrabKey (preemptive key grab) to be called
4088         for non-preemptive key masks.
4089
4090
4091 2001-11-22  Bill Haneman  <bill.haneman@sun.com>
4092
4093         * docs/reference/idl/at-spi-idl-docs.sgml:
4094         * docs/reference/idl/at-spi-idl-sections.txt:
4095         * docs/reference/idl/at-spi-idl-overrides.txt:
4096         Added missing files.
4097
4098         * docs/reference/Makefile.am:
4099         removed idl from SUBDIRS until we can figure a way to get gtk-doc
4100         to scan the IDL files :-(
4101
4102         * docs/reference:
4103         * docs/cspi:
4104         * docs/idl:
4105         Added .cvsignore files.
4106         
4107 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
4108
4109         * libspi/deviceeventcontroller.c:
4110         * libspi/keystrokelistener.c:
4111         * cspi/spi_event.c:
4112         * cspi/spi_registry.c:
4113         Added filters for KeySets, KeyEventSeq, and event types to key
4114         event dispatching, so listeners should only receive those events
4115         that they requested :-)
4116
4117 2001-11-21  Bill Haneman  <bill.haneman@sun.com>
4118
4119         * configure.in:
4120         * docs/Makefile.am:
4121         * docs/reference:
4122         * docs/reference:Makefile.am:
4123         * docs/reference/cspi:
4124         * docs/reference/cspi:Makefile.am:
4125         * docs/reference/cspi:tmpl:
4126         * docs/reference/cspi:tmpl:*.sgml:
4127         * docs/reference/idl:
4128         * docs/reference/idl:Makefile.am:
4129         * docs/reference/idl:at-spi-idl-sections.txt:
4130         * docs/reference/idl:at-spi-idl-docs.sgml:
4131         * docs/reference/idl:tmpl:
4132         * docs/reference/idl:tmpl:*.sgml:
4133
4134         Restructured docs directory to allow separate 'reference' docs
4135         section, and forked idl and cspi docs.  Added the sgml template
4136         files to CVS.  Added the first sections/structural sgml for the
4137         IDL docs.
4138
4139 2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
4140
4141         * configure.in, libspi/Makefile.am: find libXtst.
4142
4143 2001-11-21  Michael Meeks  <michael@ximian.com>
4144
4145         * test/accessx-gui.c: s/spi_value/value/ - doh.
4146
4147         * libspi/base.[ch]: add.
4148
4149 2001-11-18  Bill Haneman <bill.haneman@sun.com>
4150
4151         * idl/Accessible.idl:
4152         * idl/Application.idl:
4153         * idl/Registry.idl:
4154         * idl/Action.idl:
4155         Started gtk-doc cleanup on IDL.
4156
4157         * libspi/deviceeventcontroller.c:
4158         Added and connected non-preemptive key notification from the
4159         toolkits (in addition to the pre-emptive support from XServer
4160         which we had before, but which causes 'focus flashing').  Filters
4161         are presently limited to key modifiers and global/non-global,
4162         KeySets are presently ignored, as are KeyEvent masks.
4163
4164         Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
4165         structs into the persistant structure rather than just storing
4166         pointers to things that might not persist across servant
4167         invocations.
4168
4169         The XGrabKey call now does async keygrabs, because synchronous
4170         ones were deadlocking with GDK_event code in a very nasty way.
4171
4172         Added boolean to internal method notify_keylisteners, to indicate
4173         whether the event came from the 'toolkit source' or the 'global
4174         (XServer) source' - this is used in the notification process to
4175         determine which listeners to send the event to.
4176
4177         deviceeventcontroller.c is now warning-free.
4178         
4179         * libspi/registry.c:
4180         Fixed regression in application de-registration.
4181         Also fixed some really brain-dead weirdness having to do with
4182         event dispatching - event structs are now duplicated before being
4183         re-marshalled in the dispatch to listeners.  This also fixes a
4184         Solaris build problem.
4185         
4186         
4187 2001-11-20  Michael Meeks  <michael@ximian.com>
4188
4189         * libspi/registry.c
4190         (impl_accessibility_registry_deregister_global_event_listener): 
4191         segv. protection.
4192
4193         * libspi/deviceeventcontroller.c
4194         (spi_device_event_controller_check_key_event): return
4195         FALSE on no virtual method.
4196
4197         * libspi/*..h: make includes work on a correctly pathed install.
4198
4199         * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
4200
4201         * libspi/application.h: kill unused ( and whacked out )
4202         gboolean *spi_application_set_id (AtkObject *app, long id);
4203
4204 2001-11-20  Michael Meeks  <michael@ximian.com>
4205
4206         * libspi/*.[ch]: further convert to bonobo's type func
4207         macros, remove redundnant casts etc.
4208
4209         * libspi/text.c s/accessibility_text/spi_text/g,
4210         re-order to de-cruft.
4211
4212         * libspi/hypertext.c: re-order to kill a huge slew
4213         of redundant forward decls.
4214
4215         * libspi/relation.c: ditto.
4216
4217         * libspi/image.c: ditto.
4218
4219         * */.cvsignore: update
4220         
4221 2001-11-20  Michael Meeks  <michael@ximian.com>
4222
4223         * libspi/deviceeventcontroller.c
4224         (_controller_register_with_devices): use g_getenv,
4225         kill stdlib.h include.
4226
4227         * libspi/keystrokelistener.c
4228         (spi_keystroke_listener_get_type): kill
4229         (spi_keystroke_listener_class_init),
4230         (spi_keystroke_listener_init): rename to this.
4231
4232         * libspi/text.c (impl_getAttributes): fix warning / bug.
4233
4234         * libspi/*.[ch]: more headers, includes and over commenting.
4235         
4236 2001-11-20  Michael Meeks  <michael@ximian.com>
4237
4238         * libspi/*.[ch]: fixup headers, includes and over commenting.
4239
4240         * libspi/image.c (impl__get_imageDescription): const
4241         correctness warning fix. remove redundant casting.
4242
4243         * libspi/table.c (impl_getRowDescription): ditto.
4244         (impl_getColumnDescription): ditto.
4245
4246         * libspi/libspi.h: add.
4247
4248 2001-11-19  Michael Meeks  <michael@ximian.com>
4249
4250         * libspi/editabletext.c (impl_setAttributes): fix warnings.
4251
4252         * libspi/component.c (accessibility_component_get_type): 
4253         rename to (spi_component_get_type): and macroify.
4254         (accessibility_component_init): rename to
4255         (spi_component_init): this
4256         (accessibility_component_class_init): rename to
4257         (spi_component_class_init): this
4258
4259         * libspi/action.c (spi_action_get_type): kill, use the macro.
4260
4261         * libspi/deviceeventcontroller.c (_compare_listeners): re-order
4262         to avoid prototype.
4263
4264         * libspi/application.c (spi_application_object_event_listener),
4265         (impl_accessibility_application_register_object_event_listener):
4266         warning fixes / const understanding updates.
4267
4268         * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
4269         warning fixes.
4270
4271 2001-11-18  Bill Haneman <bill.haneman@sun.com>
4272
4273         * libspi/spi_accessible.c: Added docs and C bindings for
4274         AccessibleStateSet. (No implementations yet).  Documentation
4275         coverage for C bindings now 100%. Made docs for event listeners
4276         more explicit.
4277         
4278         * idl/Registry.idl:
4279         Added methods 
4280             boolean notifyListenersSync (in DeviceEventListener listener,
4281                                      in DeviceEvent event);
4282
4283             oneway void notifyListenersAsync (in DeviceEventListener listener,
4284                                           in DeviceEvent event);
4285
4286         Added DeviceEventListener and DeviceEvent structs (may deprecate
4287         KeyStroke and KeystrokeListener in favor of this generic
4288         event/listener framework for devices).
4289
4290         * libspi/deviceeventcontroller.c:
4291
4292         Changed some key listener code to take masks, etc., and paved the
4293         way for integration of toolkit/non-preemptive key events. Changed
4294         signatures of some internal methods.
4295
4296         * at-bridge/bridge.c:
4297         Fixed regression connecting to interface signals, apparently
4298         caused by GTK+ changes.
4299
4300         Added an internal bridge_state_listener to deal with
4301         property-change:accessible-state signals.
4302
4303         Changed the key_listeners GList to store structs (including masks,
4304         etc.) instead of just CORBA_Objects (required for full
4305         implementation of key listener API).
4306
4307         Connected the bridge to all currently supported Atk signals.
4308         Events now supported: 
4309             object:property-change
4310             object:property-change:accessible-name
4311             object:property-change:accessible-state
4312             object:property-change:accessible-description
4313             object:property-change:accessible-parent
4314             object:property-change:accessible-value
4315             object:property-change:accessible-role
4316             object:property-change:accessible-table-caption
4317             object:property-change:accessible-table-column-description
4318             object:property-change:accessible-table-column-header
4319             object:property-change:accessible-table-row-description
4320             object:property-change:accessible-table-row-header
4321             object:property-change:accessible-table-summary
4322             object:children-changed
4323             object:visible-data-changed
4324             object:selection-changed
4325             object:text-selection-changed
4326             object:text-changed
4327             object:text-caret-moved
4328             object:row-inserted
4329             object:row-reordered
4330             object:row-deleted
4331             object:column-inserted
4332             object:column-reordered
4333             object:column-deleted
4334             object:model-changed        
4335
4336 2001-11-16  Bill Haneman <bill.haneman@sun.com>
4337
4338         * libspi/hyperlink.c,h:
4339         Fixed some broken stuff in hyperlink.
4340         
4341         * libspi/relation.h:
4342         * libspi/relation.c:
4343         * cspi/spi_accessible.c:
4344         Initial implementations of AccessibleRelation methods, and docs.
4345
4346         * libspi/accessible.c:
4347         Fixed a bug that caused SEGV  if an accessible
4348         object's description is NULL, and a client
4349         requests it.  An empty string is now returned.
4350
4351         * cspi/spi_editabletext.c:
4352         * cspi/spi_hypertext.c:
4353         * cspi/spi_image.c:
4354         * cspi/spi_hyperlink.c:
4355         * cspi/spi_table.c:
4356         Added docs.  
4357
4358         Doc coverage now 95%.
4359
4360 2001-11-16  Bill Haneman <bill.haneman@sun.com>
4361
4362         One last namespacing revision:
4363         * libspi/accessibleeventlistener.[ch]:
4364         Renamed SpiAccessibleEventListener to SpiEventListener,
4365         (no need for two namespaces ;-)
4366
4367         And lots of documentation fixes:
4368
4369         * docs/at-spi-docs.sgml:
4370         Fixed 'underscore vs. hyphen' bug that was preventing
4371         the gtk-doc API docs from being automatically generated.
4372
4373         * cspi/spi-impl.h
4374         * cspi/spi-listener.h
4375         * cspi/spi.h
4376         * cspi/spi_accessible.c
4377         * cspi/spi_action.c
4378         * cspi/spi_application.c
4379         * cspi/spi_component.c
4380         * cspi/spi_editabletext.c
4381         * cspi/spi_event.c
4382         * cspi/spi_hypertext.c
4383         * cspi/spi_main.c
4384         * cspi/spi_registry.c
4385         * cspi/spi_selection.c
4386         * cspi/spi_text.c
4387         * cspi/spi_value.c
4388         * docs/Makefile.am
4389         * docs/at-spi-docs.sgml
4390         * docs/at-spi-sections.txt
4391         
4392         Added and fixed up gtk-doc documentation in cspi.
4393         
4394         Interfaces now (fully) documented (subject to revision and enhancement):
4395         SPI_main
4396         Event Listener Support
4397         Registry API
4398         AccessibleApplication
4399         Accessible
4400         AccessibleAction
4401         AccessibleComponent
4402         AccessibleEditableText
4403         AccessibleSelection
4404         AccessibleText
4405         AccessibleValue
4406
4407         still pending:
4408         AccessibleStateSet
4409         AccessibleRelationSet
4410         AccessibleImage
4411         AccessibleTable
4412         AccessibleHyperlink
4413         
4414 2001-11-14  Bill Haneman <bill.haneman@sun.com>
4415
4416         * at-bridge/bridge.c:
4417         Initial work for toolkit-level key snooper connection by bridge.
4418
4419         * cspi/spi-impl.h:
4420         * cspi/spi_*.h:
4421         * cspi/spi_*.c:
4422         New typedefs and fixes to support new namespacing, and cleaner
4423         separation of cspi bindings from libspi bonobo implementation.  
4424         Removed inconsistent and extraneous Spi* namespace prefix that
4425         had crept into cspi headers.
4426         Lots of comment fixes that sed had missed.
4427
4428         * cspi/spi-roletypes.h:
4429         * cspi/spi-statetypes.h:
4430         Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
4431         to AccessibleRoleType.
4432         
4433         * libspi/accessibleeventlistener.h:
4434         Fixed minor namespacing weirdness.
4435
4436         * libspi/deviceeventcontroller.c:
4437         Reordered some internal API for device listeners.
4438         Changed the key registry final boolean to 'is_system_global'
4439         rather than 'is_synchronous', which is more descriptive of its 
4440         actual meaning.
4441         Added spi_device_event_controller_new().
4442         Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
4443          
4444         * libspi/keystrokelistener.[ch]:
4445         Namespaced KeystrokeListener to SpiKeystrokeListener.
4446         Changed uses of keymasks to use SPI_ prefix, and did other
4447         knock-on fixups.
4448
4449         * libspi/keymasks.h:
4450         Namespaced keymask constants with SPI_ prefix.
4451
4452         * libspi/registry.c:
4453         Some warning fixes, and knock-on fixes from namespace changes.
4454
4455         * test/Makefile.am:
4456         Added rules for accessx-gui test program.
4457
4458         * test/accessx-gui.c:
4459         Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
4460         utility.  It doesn't actually use at-spi, but it's still cool and
4461         useful ;-)
4462
4463         * test/keysynth-demo.c:
4464         * test/simple-at.c:
4465         * test/at.c:
4466         * test/app.c:
4467         Fixes so that these test clients work properly with the namespaced
4468         libraries. (Incompletely tested for technical reasons, fixes may follow)
4469         
4470
4471 2001-11-13  Michael Meeks  <michael@ximian.com>
4472
4473         * libspi/application.c
4474         (impl_accessibility_application_get_version),
4475         (impl_accessibility_application_get_toolkit_name):
4476         warning fixes.
4477         (impl_accessibility_application_set_id),
4478         (impl_accessibility_application_get_id): remove
4479         redundant casting code.
4480
4481         * libspi/action.c (impl_getDescription): fix warnings.
4482
4483         * libspi/accessible.c
4484         (impl_accessibility_accessible_get_parent),
4485         (impl_accessibility_accessible_get_child_at_index),
4486         (impl_accessibility_accessible_get_state),
4487         (impl_accessibility_accessible_get_relation_set):
4488         warning fixes & include action.h
4489
4490 2001-11-13  Michael Meeks  <michael@ximian.com>
4491
4492         * *.[ch] fix bits I screwed up:
4493
4494                 s/([^ \tb(\*\&\?\",])spi_/\1/g;
4495                 s/([^ \tb(\*\&\?\",])Spi/\1/g;
4496         
4497 2001-11-13  Michael Meeks  <michael@ximian.com>
4498
4499         * *.[ch] Namespace libspi into spi_ and Spi.
4500
4501 2001-13-11  Michael Meeks  <michael@ximian.com>
4502
4503         * Makefile.am: dist & install at-spi-1.0.pc
4504
4505         * libspi/Makefile.am: install into at-spi-1.0
4506
4507         * idl/Makefile.am (idldir): install into at-spi-1.0
4508
4509         * at-spi-1.0.pc.in: add.
4510
4511         * configure.in: build it.
4512
4513 2001-11-12  Bill Haneman <bill.haneman@sun.com>
4514
4515         * test/keysynth-demo.c:
4516         Use a 'realize' signal-handler to set the WM properties for
4517         the virtual keyboard, rather than making it a "POPUP" type
4518         override-redirect window (thanks to anders carlsson for that
4519         tip!)
4520
4521 2001-11-11  Bill Haneman <bill.haneman@sun.com>
4522
4523         * test/Makefile.am:
4524         * test/keysynth-demo.c:
4525         Added new test of key synthesis, which creates a simple
4526         (mouse-operated) onscreen keyboard.  It inserts key events into
4527         the currently-focused window, thus it does not grab keyboard focus
4528         itself.
4529
4530         * cspi/spi_registry.c:
4531         Added C binding for AT-SPI generateKeyEvent.
4532
4533         * libspi/deviceeventcontroller.c:
4534         Added call to XFilterEvent so that key listener works with XIM (we
4535         hope).  Added event_synth_type to generateKeyEvent, so that we can
4536         produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
4537         synthesize a press/release pair for KeySyms.    
4538         
4539 2001-11-09  Bill Haneman <bill.haneman@sun.com>
4540
4541         * libspi/Makefile.am: 
4542         * registryd/Makefile.am:
4543         (temporary) hack to include libXtst in libspi and registryd.
4544         (Needed for keystroke synthesis, see below).
4545
4546         * idl/Registry.idl:
4547         Improved API for registerKeystrokeListener, in accordance with
4548         discussions with Gnopernicus team and X server research.
4549
4550         * libspi/registry.c:
4551         * libspi/deviceeventcontroller.c:
4552         * libspi/accessible.c:
4553         * libspi/keystrokelistener.c:
4554         Changes and fixes to support keylisteners for potentially
4555         consumed key events (that is, 'passive grabs').
4556         Added implementation for generateKeyEvent() [untested].
4557
4558         * cspi/spi.h:
4559         Changes to registerKeystrokeListener() API, as above.
4560         Added deregisterGlobalEventListenerAll(), and 
4561         deregisterKeystrokeListener(), which are needed for clean exit of
4562         clients.
4563         Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
4564         and a macro ALL_KEYS which may be used in place of a KeySet pointer.
4565         
4566         * cspi/spi_registry.c:
4567         Added implementations of function prototypes mentioned above.
4568         
4569         * registryd/registryd.c:
4570         Added the key listener event source as a g_timeout(), to allow
4571         receipt of key events that are not caught by GDK (since GDK
4572         doesn't support passive keygrabs, this was necessary).
4573
4574         * test/simple-at.c:
4575         Changed to attach a keylistener to 'Alt' keys, and
4576         respond to the following keycommands: Alt-M (toggle magnifier);
4577         Alt-F (toggle speech); Alt-Q (quit).
4578         Added an exit routine to deregister the listeners, and a key
4579         listener that prints some key info to the console when a key
4580         matches the listener mask (and is thus received by the listener).
4581         
4582         * util/idl/Magnifier.idl:
4583         Changes to magnifier API to support multiple zoom regions,
4584         non-uniform scaling in x and y, markDirty, and a host of other
4585         features that would be useful to magnification.
4586
4587         * util/mag_image.h:
4588         * util/mag_client.c:
4589         * util/mag_client.h:
4590         * util/mag_control.c:
4591         * util/magnifier.c:
4592         Source code changes to support the above IDL changes.
4593         
4594         * util/mag_image.c:
4595         As above, and also changes to use a (slower) generic conversion
4596         path for colormap conversions, since the fast RGB conversions have been
4597         reported to fail for 16-bit displays.
4598
4599 2001-10-26  Michael Meeks  <michael@ximian.com>
4600
4601         * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
4602
4603 2001-10-26  Laszlo Peter <laca@ireland.sun.com>
4604
4605         * at-bridge/Makefile.am: fix LDFLAGS.
4606
4607 2001-10-09  Bill Haneman <bill.haneman@sun.com>
4608
4609         * at-bridge/bridge.c:
4610         Re-worked listeners for toolkit events, now we have signal
4611         and property listeners. Added a private method
4612         register_atk_event_listeners(), which registers with the
4613         various atk and gtk signals we need to monitor in order to emit
4614         our at-spi events.
4615         Added emission hook for AtkObject:property-change events, to
4616         support the 'property listeners'.
4617         Fixed some alloc()s of Accessibility_Event structs to use CORBA
4618         allocation.
4619
4620         * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
4621         which emit warnings and exit, respectively, if CORBA errors occur
4622         during remote calls, and we now use these methods to check most of
4623         our CORBA calls in the C bindings.
4624
4625         * cspi/spi_accessible.c:
4626         Changed AccessibleSelection_refSelectedChild() to
4627         AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
4628         now increment refcounts.
4629
4630         * cspi/spi_component.c:
4631         Fixed some long pointer casts (dangerous!) to pass pointers to
4632         CORBA_longs of the proper type to the CORBA stubs, and copy the
4633         data into the longs that were passed into the C bindings code.
4634         
4635         * at-bridge/bridge.c:
4636         
4637         * libspi/accessible.c:
4638         Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
4639         hyperlinks, AtkHyperlink is an object type.     
4640
4641         * libspi/application.c:
4642         Added various conversions to and from "generic" event types and
4643         atk-specific types; this is really part of the 'bridge'
4644         implementation but is valid for all AtkObject-based accessibility 
4645         implementations.
4646
4647         * libspi/editabletext.c:
4648         Fixed nasty bug wherein editable text's finalize method was
4649         unref'ing tha AtkObject reference that the text parent class was
4650         about to unref _again_.  There was also a nasty inheritance bug
4651         that meant that the AccessibleEditableText class was corrupt.
4652
4653         * libspi/selection.c:
4654         Provided implementations for some selection API that was broken.
4655         
4656         * idl/Application.idl:
4657         Added registerObjectEventListener () method.
4658
4659         * THROUGHOUT:
4660         Fixed a number of return values that were Bonobo_Unknowns from
4661         bonobo_object_corba_objref(), which I
4662         forgot to dup before returning.  Changed instances of 
4663         bonobo_object_corba_objref (bonobo_object(o)) to
4664         BONOBO_OBJREF(o), for concision and clarity.
4665         
4666 2001-10-13  Louise Miller <louise.miller@sun.com>
4667
4668         * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
4669         idl/Event.idl, idl/Registry.idl
4670         Changed these files to include Bonobo_Unknown.idl instead
4671         of Bonobo.idl
4672
4673 2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
4674
4675         * libspi/component.c libspi/component.h:
4676                 Fixed typo.  Added assertions for object checks in 
4677         AccessibleComponent code.
4678
4679 2001-10-09  Bill Haneman <bill.haneman@sun.com>
4680
4681         * idl/Accessible.idl:
4682                 Added 'isEqual (Accessible *object)' 
4683         method for Accessible. (Not Yet Implemented).
4684         
4685         * idl/Registry.idl:
4686                 Changed signature of registerKeystrokeListener() to
4687         take a KeySet and KeyEventSeq so that specific keys and event
4688         types could be requested for monitoring, and added a flag
4689         is_synchronous so that either synchronous or asynchronous
4690         notification could be requested.  (However this is not all
4691         implemented yet). This also meant adding two new typedefs,
4692         KeyEventSeq and KeySet.
4693
4694         * idl/Relation.idl: 
4695                 Added two new relations, RELATION_TOOLTIP_FOR and
4696         RELATION_LEAFNODE_OF.
4697
4698         * idl/State.idl:
4699                 Added new state, STATE_HAS_TOOLTIP.
4700         
4701         * libspi/text.c, editabletext.c:
4702                 Added new assertions to all casts of bonobo-objects from
4703         CORBA servants, to prevent Text API calls on non-text objects.
4704                 Changed suspect casts of int-pointer types, so that we
4705         always send a valid CORBA_long pointer to the CORBA APIs that use
4706         in/out long parameters.  We then have to copy from the CORBA_long
4707         into the regular long or int for return to the C bindings, or
4708         vice-versa when returning parameters from ATK calls to the bonobo wrappers.
4709         
4710         * cspi/spi_text.c:
4711         * libspi/deviceeventcontroller.c:
4712                 Cleaned these sources up.
4713         * idl/Text.idl:
4714                 Changed return type for getCharacterAtOffset to
4715         CORBA_unsigned_long, to allow for 32-bit characters.
4716         
4717                 
4718 2001-10-08  Bill Haneman <bill.haneman@sun.com>
4719
4720         * util/Makefile.am:
4721         * idl/Makefile.am:
4722                 Fixed 'make dist' so that distro compiles...
4723         * libspi/keymasks.h:
4724                 new file.
4725         * cspi/spi-listener.c:
4726                 KeystrokeListenerCB now returns a boolean.
4727         * cspi/spi.h:
4728                 Added KeyEventType struct, and KeyStroke.
4729                 Also added createKeystrokeListener(),
4730         KeystrokeListener_addCallback(),
4731         KeystrokeListener_removeCallback(), and added a keymask to
4732         registerKeystrokeListener().
4733         * cspi/spi_accessible.c:
4734                 Changed numerous return types for interfaces from
4735         AccessibleComponent to Accessible<InterfaceName>; this was
4736         probably a cut-and-paste error.
4737         * cspi/spi_event.c:
4738                 Implementations of new KeystrokeListener api (from spi.h,
4739         above).
4740         * idl/Registry.idl:
4741                 Changes to key modifier mapping.
4742                 Created ControllerEventMask struct.
4743                 Made DeviceEventController derive from Bonobo::Unknown.
4744         * idl/Text.idl:
4745                 Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
4746         * libspi/deviceeventcontroller.c:
4747                 Added a number of new internal (private) methods.
4748         * libspi/editabletext.c:
4749         * libspi/editabletext.h:
4750                 Fixed a number of bugs related to the fact that
4751         editabletext inherits from text.  Fixed the EditableText struct,
4752         the init() call, and use correct casts when calling Text methods
4753         from an EditableText object.  Removed (duplicate) atko from the
4754         EditableText structure, we use the one in the parent Text
4755         structure via the casts mentioned above.
4756         * libspi/keystrokelistener.[ch]:
4757         * libspi/registry.c:
4758                 Changes in support of keyboard handling (above).
4759         
4760         Keyboard handling, though partly functional, is still not
4761         recommended for at-spi client use as there is considerable 
4762         work yet to be done.
4763
4764         * libspi/text.c:
4765                 Changed some places where pointers to various int types
4766         are cast to be pointers to CORBA_long types and vice-versa:
4767         pointer casting is not safe so we pass pointers of the correct
4768         types and then cast the result before putting it into the target
4769         pointers.
4770
4771         * libspi/text.h: minor typos corrected.
4772         * test/simple-at.c: 
4773                 We now speak not only the name of a Text element, but the
4774         first sentence of its content, when it receives focus.
4775                 I also changed the text compression to 75% from 50%.
4776         * util/Accessibility_Util.server.in:
4777                 Changed the default magnifier type to be a 3x vertical
4778         splitscreen magnifier (was previously a 2x horizontal one).
4779
4780 2001-10-03  Bill Haneman <bill.haneman@sun.com>
4781
4782         * libspi/keystrokelistener.h:
4783         * libspi/keystrokelistener.c:
4784                 Initial functional implementations of KeystrokeListener.
4785         * idl/Registry.idl:
4786         
4787 2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
4788
4789         Fixed string handling for NULL strings in libspi.
4790         Added spi_freeString to free strings returned by C bindings.
4791
4792 2001-09-30  Bill Haneman <bill.haneman@sun.com>
4793
4794         * libspi/keystrokelistener.h:
4795         * libspi/keystrokelistener.c:
4796                 Began (no-op) implementations of KeystrokeListener
4797                         (see below).
4798         * libspi/deviceeventcontroller.c:
4799         * libspi/deviceeventcontroller.h:
4800                 Began creating implementations of DeviceEventController,
4801                         to handle keystroke and mouse event listening and
4802                         synthesis.
4803         * libspi/accessible.c:
4804                 Stubbed-in the implementations for
4805                         Accessibility_Accessible_getState and
4806                         Accessibility_Accessible_getRelationSet.
4807         * libspi/registry.c:
4808                 Improved de-registration process and fixed some bugs, 
4809                         deregistration now works correctly.
4810         * libspi/desktop.c:
4811                 Added initialization of applications list (to NULL).
4812         * util/magnifier.c:
4813                 Reduced speech compression from 0.5 to 0.7, for demo.
4814                 Changed call to gdk_window_set_decorations()
4815                         to gtk_window_set_decorated().
4816         * at-bridge/bridge.c:
4817                 Bridge now deregisters when app exits, via
4818                         registration of a cleanup function
4819                         with the g_atexit() call.
4820                         Required making 'app' static, renamed 'this_app'.
4821                 Fixed broken use of bonobo_init, passing argv wrongly.
4822
4823 2001-09-27  Bill Haneman <bill.haneman@sun.com>
4824
4825         * util:
4826         * util/Makefile.am: 
4827                 Created a new directory for 
4828                         accessibility-related utilities, primarily for
4829                         testing and demo purposes, but with possible
4830                         end-user utility.
4831         
4832         * util/magnifier.c:
4833         * util/magnifier.h:
4834         * util/mag_image.c:
4835         * util/mag_image.h:
4836                 Onscreen magnifier utility that
4837                         is implemented as a bonobo service.
4838         
4839         * util/mag_client.c:
4840         * util/mag_client.h:
4841                 Client-side support (simple C bindings) 
4842                         for Magnification service
4843         
4844         * util/mag_control.c:
4845                 Client program example for 
4846                         Magnification service
4847         
4848         * util/Accessibility_Magnifier.server.in:
4849                 Bonobo-activation file for the 
4850                         Magnification service.
4851         
4852         * util/idl:
4853         * util/idl/Magnifier.idl:
4854                 IDL defining the bonobo Magnification
4855                         service interface.
4856
4857         * test/simple-at.c:
4858                 Modifications to use the bonobo-activated magnifier
4859                         above, in place of trying to connect to an existing
4860                         magnifier that uses socket-listening IPC.
4861
4862                 If env variable MAGNIFIER is set, a magnifier service
4863                         will be started if one does not exist.
4864         
4865 2001-09-25  Bill Haneman <bill.haneman@sun.com>
4866
4867         * at-bridge/bridge.c:
4868                 applied patch from Marc to build and run 
4869                 against new glib and gtk+ (seemed like a change 
4870                 to bonobo_init signature was made ?)
4871         * test/simple-at.c:
4872                 made festival-server support turned off by default.
4873                 Added support for a simple magnifier (off by default)
4874                 which will be added to a 'util' directory later.
4875         * at-bridge/Makefile.am:
4876                 Changed "application.h" header from a 'source'
4877                 to a 'dependency' of libat-bridge.
4878
4879 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
4880
4881         * cspi/Makefile.am:
4882                 Added spi-util.c.
4883
4884         * cspi/spi-util.c:
4885                 Fixed typo
4886
4887         * cspi/spi.c:
4888                 Added interface implementation c files to list of
4889                         includes so they are included in libcspi.
4890
4891         * cspi/spi.h:
4892                 Changed prototype of AccessibleAction_doAction to return a
4893                         boolean.
4894                 Changed prototype of AccessibleTable_getCaption to
4895                         return an Accessible.
4896                 Changed prototype of AccessibleTable_getSelectedRows
4897                         and AccessibleTable_getSelectedColumns to
4898                         return a long (returns the number of selected rows
4899                         or columns respectively).
4900                 Changed name of AccessibleText_refRunAttributes to
4901                         AccessibleText_getAttributes.
4902                 Changed prototype of AccessibleText_getCharacterExtents to
4903                         return a void rather than a boolean. 
4904                 Added support for a AccessibleCoordType parameter
4905                         specifying what type of coordinates are desired.
4906                 Added an AccessibleCordType parameter to
4907                         AccessibleText_getPointAtOffset.
4908
4909         * cspi/spi_accessible.c:
4910                 Added code to return the outstanding interfaces from
4911                         Accessible_queryInterface.
4912
4913         * cspi/spi_action.c:
4914                 Fixed typos.
4915                 Corrected call to getNActions to call the c binding
4916                         for an attribute.
4917
4918         * cspi/spi_editabletext.c:
4919                 Fixed typos.
4920                 Changed name from setRunAttributes to setAttributes.
4921
4922         * cspi/spi_hyperlink.c:
4923                 Fixed typos.
4924                 Changed call to getNAnchors to correctly call the c
4925                         binding for an attribute.
4926
4927         * cspi/spi_hypertext.c:
4928                 Fixed typos.
4929                 Changed getImageDescription to correctly call the
4930                         binding for an attribute.
4931
4932         * cspi/spi_selection.c:
4933                 Changed getNSelectedChildren to correctly call the c
4934                         binding for the attribute.
4935                 Changed refSelectedChild to getSelectedChild.
4936
4937         * cspi/spi_table.c:
4938                 Fixed typos.
4939                 Changed getCaption to return an Accessible.
4940                 Fixed calls which retrieve attributes.
4941                 Changed refAt to getAccessibleAt.
4942                 Changed getNSelectedRows and getNSelectedColumns to
4943                         return longs.
4944
4945         * cspi/spi_text.c:
4946                 Changed getCharacterExtents and getPointAtOffset to accept an
4947                         AccessibleCoordType.
4948                 Fixed typos.
4949                 Changed calls which retrieve attributes.
4950                 Changed refRunAttributes to getAttributes.
4951
4952         * cspi/spi_value.c:
4953                 Fixed typos.
4954
4955         * idl/Hyperlink.idl:
4956                 Changed n_anchors attribute to nAnchors to keep naming
4957                         convention consistent.
4958
4959         * idl/Table.idl:
4960                 Made Table inherit from Bonobo::Unknown.
4961                 Added nSelectedColumns and nSelectedRows attributes.
4962
4963         * idl/Value.idl:
4964                 Made Value inherit from Bonobo::Unknown.
4965
4966         * libspi/hyperlink.c:
4967                 Change for nAnchors attributte name change.
4968
4969 2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
4970         * cspi/Makefile.am:
4971                 Added spi-util.c.
4972
4973         * cspi/spi-util.c:
4974                 Fixed typo
4975
4976         * cspi/spi.c:
4977                 Added interface implementation c files to list of
4978                         includes so they are included in libcspi.
4979
4980         * cspi/spi.h:
4981                 Changed prototype of AccessibleAction_doAction to return a
4982                         boolean.
4983                 Changed prototype of AccessibleTable_getCaption to
4984                         return an Accessible.
4985                 Changed prototype of AccessibleTable_getSelectedRows
4986                         and AccessibleTable_getSelectedColumns to
4987                         return a long (returns the number of selected rows
4988                         or columns respectively).
4989                 Changed name of AccessibleText_refRunAttributes to
4990                         AccessibleText_getAttributes.
4991                 Changed prototype of AccessibleText_getCharacterExtents to
4992                         return a void rather than a boolean. 
4993                 Added support for a AccessibleCoordType parameter
4994                         specifying what type of coordinates are desired.
4995                 Added an AccessibleCordType parameter to
4996                         AccessibleText_getPointAtOffset.
4997
4998         * cspi/spi_accessible.c:
4999                 Added code to return the outstanding interfaces from
5000                         Accessible_queryInterface.
5001
5002         * cspi/spi_action.c:
5003                 Fixed typos.
5004                 Corrected call to getNActions to call the c binding
5005                         for an attribute.
5006
5007         * cspi/spi_editabletext.c:
5008                 Fixed typos.
5009                 Changed name from setRunAttributes to setAttributes.
5010
5011         * cspi/spi_hyperlink.c:
5012                 Fixed typos.
5013                 Changed call to getNAnchors to correctly call the c
5014                         binding for an attribute.
5015
5016         * cspi/spi_hypertext.c:
5017                 Fixed typos.
5018                 Changed getImageDescription to correctly call the
5019                         binding for an attribute.
5020
5021         * cspi/spi_selection.c:
5022                 Changed getNSelectedChildren to correctly call the c
5023                         binding for the attribute.
5024                 Changed refSelectedChild to getSelectedChild.
5025
5026         * cspi/spi_table.c:
5027                 Fixed typos.
5028                 Changed getCaption to return an Accessible.
5029                 Fixed calls which retrieve attributes.
5030                 Changed refAt to getAccessibleAt.
5031                 Changed getNSelectedRows and getNSelectedColumns to
5032                         return longs.
5033
5034         * cspi/spi_text.c:
5035                 Changed getCharacterExtents and getPointAtOffset to accept an
5036                         AccessibleCoordType.
5037                 Fixed typos.
5038                 Changed calls which retrieve attributes.
5039                 Changed refRunAttributes to getAttributes.
5040
5041         * cspi/spi_value.c:
5042                 Fixed typos.
5043
5044         * idl/Hyperlink.idl:
5045                 Changed n_anchors attribute to nAnchors to keep naming
5046                         convention consistent.
5047
5048         * idl/Table.idl:
5049                 Made Table inherit from Bonobo::Unknown.
5050                 Added nSelectedColumns and nSelectedRows attributes.
5051
5052         * idl/Value.idl:
5053                 Made Value inherit from Bonobo::Unknown.
5054
5055         * libspi/hyperlink.c:
5056                 Change for nAnchors attributte name change.
5057
5058
5059 2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
5060
5061         implementations-- made server implementations own AtkObject pointers
5062         rather than their respective AtkInterrface pointers to fix
5063         refcounting.  AtkHyperlink is still broken.
5064
5065 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5066         * cspi/spi_accessible.c:
5067                 Added method Accessible_Role_getName(),
5068                         and requisite string array (role_names).
5069                 Added conversion string_from_corba_strin() call
5070                         to Accessible_getName and _getDescription.
5071         * libspi/accessible.c:
5072                 Added implementation for Accessible_getRole()
5073         * test/simple-at.c:
5074                 Added festival support, used if environment variable
5075                         FESTIVAL is set.
5076         
5077 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5078
5079         * at-bridge/bridge.c:
5080             Now allocate Accessibility_Event using
5081             Accessibility_Event__alloc() instead of g_new0().
5082         * libspi/accessibleeventlistener.c:
5083             Initialize AccessibleEventListener->callbacks to NULL.
5084             Fixed accessible__event_listener_init() param, changed to
5085             "AccessibleEventListener *" type.
5086             Changed a bonobo_object_release_unref() call to
5087             Accessibility_Accessible_unref().
5088         * libspi/listener.c:
5089             Changed Bonobo_Unknown_unref to (equivalent) 
5090             Accessibility_Accessible_unref.
5091         * libspi/registry.c:
5092             Changed bonobo_object_release_unref to 
5093             Accessibility_Accessible_unref.
5094         
5095 2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
5096         
5097         * Added files:
5098             spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
5099             spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
5100             spi-util.c spi-util.h
5101             Implementations for C bindings to remaining accessibility 
5102             interfaces.
5103
5104 2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
5105         
5106         * idl/Action.idl:
5107             changed return value of Action from void to boolean to 
5108             bring in line with ATK.
5109
5110         * idl/Text.idl:
5111             Changed getText funcions to return "out" start and end offsets.
5112             Changed getAttributes to take and offset and return the start 
5113             and end offset of the attribute run.
5114             Changed getOffsetAtPoint and getCharacterExtents to take an 
5115              enum describing whether coordinates are window or screen.
5116
5117         * Added files:
5118             libspi/action.c libspi/action.h libspi/editabletext.c 
5119             libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
5120             libspi/hypertext.c libspi/hypertext.h libspi/image.c 
5121             libspi/image.h libspi/selection.c libspi/selection.h
5122             libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
5123             libspi/value.c libspi/value.h
5124             Added server implementations for outstanding ATK interfaces 
5125             not yet implemented.
5126  
5127 2001-09-04  Bill Haneman <bill.haneman@sun.com>
5128
5129         * idl/Action.idl:
5130                 Added (missing) getName() method. 
5131                 Made nActions an attribute.
5132         * idl/EditableText.idl:
5133                 Changed order of params in setAttributes.
5134         * idl/Hyperlink.idl:
5135                 Removed getAnchor, added getURI.
5136         * idl/Image.idl:
5137                 Changed attributes to methods, for efficiency
5138                 (so that getting extents can be done in one call)
5139         * idl/Selection.idl:
5140                 Changed nSelectedChildren to attribute, and re-indented.
5141         * idl/Table.idl: changed nrows, ncolumns, caption, summary 
5142                 to attributes.
5143         * idl/Text.idl: reformatted to match our coding style.
5144                 (temporarily?) removed getRowColumnAtOffset().
5145                 Changed text selection API to support multi-select and
5146                 non-contiguous selections, as in ATK.
5147         * idl/Value.idl: changed some methods to attributes.
5148
5149 2001-08-24  Mark McLoughlin <mark@skynet.ie>
5150
5151         * libspi/listener.c(impl_notify_event):
5152         BonoboUnkown_unref the source instead
5153         of bonobo_object_release_unref - the ORB
5154         handles the releasing.
5155
5156         * configure.in: require ORBit-2.3.94 for
5157         this behaviour.
5158
5159 2001-08-21  Bill Haneman <bill.haneman@sun.com>
5160
5161         Tagged CVS repository 'EA_1_0'.
5162         * README.EARLY_ACCESS:
5163         Alphabetized acknowledgements list, and
5164         added someone.
5165         Listed some known dependencies of at-spi.
5166
5167 2001-08-20  Bill Haneman <bill.haneman@sun.com>
5168
5169         * docs/at-spi-docs.sgml:
5170         * docs/at-spi-sections.txt:
5171         * docs/at-spi-overrides.txt: (Added zero-length file)
5172         Documentation improvements - gtk-doc should build
5173         docs for all implemented C bindings now.
5174         * cspi/Makefile.am:
5175         * cspi/spi_main.c:
5176         * cspi/spi.c: (New file)
5177         * cspi/spi_event.c: (New file)
5178         * cspi/spi_registry.c: (New file)
5179         * cspi/spi_accessible.c: (New file)
5180         * cspi/spi_application.c: (New file)
5181         * cspi/spi_component.c: (New file)
5182         Split spi_main.c into six parts, and included them from
5183         "spi.c".  This is a bit of a hack, probably temporary,
5184         but required by gtk-doc, apparently.
5185         
5186 2001-08-20  Bill Haneman <bill.haneman@sun.com>
5187
5188         * docs/Makefile.am:
5189         * docs/at-spi-docs.sgml:
5190         * docs/at-spi-sections.txt:
5191         * configure.in:
5192         Initial checkins/modifications for gtk-doc generation.
5193         * cspi/spi.h:
5194         * cspi/spi.c:
5195         Added (missing) interface query methods to Accessible's C binding.
5196         * cspi/spi-impl.h:
5197         Added GenericInterface type definition.
5198         * test/simple-at.c:
5199         Added query for AccessibleComponent interface to focus event handler.
5200         Added printout of bounding box for focussed component.
5201         * libspi/component.c:
5202         Added partial implementation for AccessibleComponent to C binding.
5203         * idl/Application.idl:
5204         * libspi/registry.c:
5205         * libspi/listener.c:
5206         * libspi/application.c:
5207         * libspi/application.h:
5208         Changed "ID" attribute type from string to long.
5209
5210 2001-08-19  Bill Haneman <bill.haneman@sun.com>
5211
5212         * cspi/spi.h:
5213         * cspi/spi.c:
5214         Made method naming consistent: methods taking object args
5215         start with uppercase, other methods (except those using
5216         acronyms) start with lowercase.  Underscores delimit between
5217         object names and method names:
5218         SPI_init() - uppercase since it starts with an acronym.
5219         getDesktopCount () - lowercase start since no object param0.
5220         Accessible_getName() - uppercase object type name, studlyCaps method
5221                                name.
5222
5223         * cspi/spi.h:
5224         Added gtk-doc documentation for all currently implemented
5225         methods in the C bindings API.
5226
5227 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5228
5229         * Makefile.am : changed build order to build test last.
5230         * cspi/spi.h :
5231         * cspi/spi_main.c :
5232         Changed "createEventListener" to "CreateEventListener".
5233         * libspi/accessibleeventlistener.c :
5234         Bugfix for addition of callbacks.
5235         * test/Makefile.am :
5236         * test/simple-at.c :
5237         Added new test that uses the C bindings API.
5238         * idl/Event.idl :
5239         * libspi/listener.c :
5240         * libspi/registry.c :
5241         * libspi/accessibleeventlistener.c :
5242         * at-bridge/bridge.c :
5243         Renamed member "target" of Accessibility_Event to "source",
5244         which is more descriptive.
5245         
5246
5247 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5248
5249         * Makefile.am: 
5250         * configure.in :
5251         * cspi/Makefile.am :
5252         Added makefile support for at-spi/cspi directory.
5253         * cspi/spi.h : 
5254         * cspi/spi-impl.h :
5255         * cspi/spi-listener.h : (NEW FILE)
5256         Added support for/use of spi-listener.h.
5257         * cspi/spi_main.c :
5258         C bindings now build successfully, with no warnings.
5259         * libspi/accessibleeventlistener.h : (NEW FILE)
5260         * libspi/accessibleeventlistener.c : (NEW FILE)
5261         * libspi/Makefile.am :
5262         Added new object type "AccessibleEventListener"
5263         which inherits from Listener, and allows attachment
5264         of in-process callbacks (so that a client with a listening
5265         object instance can add functionality to the local 
5266         implementation, dynamically).
5267
5268 2001-08-18  Bill Haneman <bill.haneman@sun.com>
5269
5270         * libspi/accessible.c: 
5271         Add implementation for get_index_in_parent().
5272         * cspi/spi.h : 
5273         Added #include of "spi-roletypes.h", and
5274         added enumerated type AccessibleCoordType.
5275         Added definition for KeystrokeListener (function type).
5276
5277         ADDED FILES:
5278         * cspi/spi-statetypes.h :
5279         * cspi/spi-roletypes.h :
5280         * cspi/spi-impl.h :
5281         Added these headers, used by spi.h.
5282         * cspi/spi_main.c : 
5283         Added code (NOTE: not yet built by make).
5284
5285 2001-08-18  Mark McLoughlin <mark@skynet.ie>
5286
5287         * libspi/Makefile.am: generate imodule
5288         at the same time as other idl compiler 
5289         generated files. 
5290
5291 2001-08-17  Bill Haneman <bill.haneman@sun.com>
5292         * libspi/registry.c :
5293         * libspi/application.c :
5294         * idl/Application.idl :
5295         Made registration with toolkit an application method,
5296         which is required since each app has its own toolkit static
5297         environment.  Thus the bridge must register for 
5298         notification of toolkit events from each application in turn.
5299         Toolkit notifications are now successfully registered for, and
5300         sent to the listening at client.
5301         * test/at.c :
5302         Changed toolkit event string to use hyphens rather than underscores.
5303         * libspi/listener.c :
5304         listner now gives more info in debug mode - it reports the
5305         name of the event received, as well as the name of the source.
5306         
5307
5308 2001-08-16  Bill Haneman <bill.haneman@sun.com>
5309
5310         * libspi/registry.c :
5311         added more implementation for toolkit events.
5312         Fixed bug such that toolkit event registrations
5313         (via atk) use the whole event name string, not 
5314         just minor+detail.
5315         Removed a useless call to an ORBit_ method.
5316         * at-bridge/bridge.c :
5317         Removed unused local sbuf[] variable.
5318         * test/at.c :
5319         We now register for Gtk:GtkWidget:button_press_event 
5320         events as well as "focus:" events.
5321         * cspi/spi.h :
5322         Add some more API from Registry.idl that was missing,
5323         for keystroke listening, keystroke and mouse event
5324         synthesis, and enumeration of accessible desktops.
5325
5326 2001-08-16  Michael Meeks  <michael@ximian.com>
5327
5328         * configure.in: use AM_GLIB_GNU_GETTEXT.
5329
5330         * Makefile.am (SUBDIRS): kill intl.
5331
5332 2001-08-15  Michael Meeks  <michael@ximian.com>
5333
5334         * registryd/Makefile.am: s/oaf/server/ relocate info file.
5335
5336         * configure.in: upd.
5337
5338         * configure.in: depend on a recent bonobo-activation that
5339         will find our server files ...
5340
5341 2001-08-16  Bill Haneman <bill.haneman@sun.com>
5342
5343         * libspi/accessible.c : accessible_new() :
5344         Now we add the Component interface via bonobo_object_add_interface,
5345         if the contained AtkObject implements AtkComponent.
5346         * libspi/accessible.h : now include "component.h"
5347         * libspi/component.h :
5348         * libspi/component.c : added files - implementation of
5349         bonobo wrapper object for Accessibility/Component
5350         * libspi/listener.c :
5351         Added test code to check for Accessibility/Component:1.0
5352         interface and report whether it is implemented by the
5353         event source.
5354         * libspi/registry.c :
5355         Now we check for not only the hash of the whole event 
5356         string before relaying the event, we also check the
5357         "minor" event string (without the detail string).
5358         This allows event listeners to be registered against
5359         all events of a certain major+minor type, or just
5360         against a specific major+minor+detail type.
5361         * libspi/accessible.c :
5362         Added implementations for Accessible:get_parent(),
5363         Accessible:getChildCount(), and Accessible:getChildAtIndex().
5364         * libspi/registry.c :
5365         * libspi/listener.c :
5366         Replaced calls to Accessibility_Accessible_ref() and
5367         Accessibility_Accessible_unref() with 
5368         calls to bonobo_object_dup_ref() and 
5369         bonobo_object_release_unref(), so that the CORBA object
5370         is dup-ed and released when relayed, as well as the bonobo object.
5371
5372 2001-08-15  Mark McLoughlin <mark@skynet.ie>
5373
5374         * libspi/Makefile.am,
5375           registryd/Makefile.am,
5376           at-bridge/Makefile.am.
5377           test/Makefile.am, configure.in:
5378         reverse previous changes.
5379
5380         * /idl/Image.idl: fix typo.
5381
5382         * test/Makefile.am: put DEBUG_FLAGS
5383         in CFLAGS.
5384
5385 2001-08-15  Mark McLoughlin <mark@skynet.ie>
5386
5387         * test/app.c: use argv[0] instead of
5388         g_type_prgname.
5389
5390 2001-08-15  Mark McLoughlin <mark@skynet.ie>
5391
5392         * libspi/Makefile.am,
5393           registryd/Makefile.am,
5394           at-bridge/Makefile.am.
5395           test/Makefile.am, configure.in:
5396         cleanup, replace individual LIBS/CFLAGS with
5397         AT_COMMON_{LIBS|CFLAGS}.
5398
5399         * README: format.
5400
5401 2001-08-15  Mark McLoughlin <mark@skynet.ie>
5402         
5403         * configure.in, libspi/Makefile.am:
5404         Change IDL path checking for bonobo-activation
5405         as opposed to oaf.
5406
5407 2001-08-15  Bill Haneman <bill.haneman@sun.com>
5408
5409         * registryd/registry.c : separated event listeners to use
5410         3 separate lists (focus, window, toolkit).  Began testing
5411         event names against hashes before relaying events.
5412         * test/at.c : now register for events of type "focus:"
5413         * test/app.c : now generate events of type "focus:"
5414         * at-bridge/bridge.c : register with ATK for focus events,
5415         and we now relay those focus events to any "focus:" listeners.
5416         This now works with the bridge as a GTK_MODULE when running test/at.
5417         * libspi/registry.c :
5418         * libspi/listener.c : 
5419         now we ref event sources before propagating, and unref on receipt.
5420         * libspi/registry.c : 
5421         some changes to internal structs, to support event typestring hashes.
5422         * text/app.c : changed the way the appname is generated.
5423         * cspi : added directory that will hold the C bindings library for 
5424                 non-CORBA/bonobo-savvy clients.
5425         * cspi/spi.h : header file that contains the function prototypes for the C binding.
5426         * idl/Component.idl : added in parameter to indicate coord system for
5427                 geometry-related calls.
5428         * idl/Hyperlink.idl : added readonly n_links attribute
5429         * idl/Image.idl : changed methods to attributes.
5430         
5431 2001-08-15  Mark McLoughlin <mark@skynet.ie>
5432
5433         * at-bridge/Makefile.am: link against
5434         ../libspi/libspi.la instead of -lspi.
5435
5436         * at-spi/test/app.c: include 
5437         bonobo-activation.h. Use a default appname
5438         if one is not provided.
5439
5440 2001-08-14  Bill Haneman <bill.haneman@sun.com>
5441
5442         * idl/Registry.idl : temporarily changed register_Application
5443         to oneway, to work around issue with initial registration 
5444         re-entrancy.
5445         * idl/Application.idl : changed attribute "id" from readonly 
5446         to read-write, since it needs to be assigned by Registry.
5447         * registryd/registryd.c : added call to set application id 
5448         on registration.
5449         * registryd/registry.c : changed de-registration procedure to
5450         use CORBA_Object_hash() to find matching object ref in application
5451         lists and listener lists.
5452         * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
5453         began distinguishing between event types (work in progress).
5454
5455 2001-08-13  Bill Haneman <bill.haneman@sun.com>
5456
5457         CHANGES:
5458         * libspi/application.c:
5459         Added implementations for get/set id, get_toolkitName,
5460         get_version.
5461         * registryd/registryd.c :
5462         * test/at.c :
5463         * test/app.c :
5464         * Makefile.am :
5465         Converted from use of OAF to bonobo-activation.
5466         * libspi/desktop.h :
5467         * libspi/desktop.c :
5468         * test/app.c :
5469         Removed references to atksimpleobject, since base atkobject
5470         implementation now provides functionality we need.
5471         * libspi/atksimpleobject.c :
5472         * libspi/atksimpleobject.h :
5473         Removed.
5474         
5475         ADDITIONS:
5476         * at-bridge
5477         * at-bridge/Makefile.am
5478         * at-bridge/bridge.c
5479         * configure.in
5480         * Makefile.am
5481         Added directory "bridge" and contents, and added dependencies
5482         in Makefile.am/configure.in.  
5483         Initial checkin of "at-bridge".
5484         This code is a GTK_MODULE which automatically registers
5485         GTK+ apps with the accessibility registry, using an object
5486         reference to the root ATK object.
5487         
5488 2001-08-10  Mark McLoughlin <mark@skynet.ie>
5489
5490         * po/Makefile.in.in: Remove. Again. If this
5491         doesn't get autogenerated - you need to update
5492         gnome-common.
5493
5494 2001-08-07  Mark McLoughlin <mark@skynet.ie>
5495
5496         * po/Makefile.in.in: Add. Again.
5497
5498 2001-07-31  Bill Haneman <bill.haneman@sun.com>
5499
5500         * libspi/accessible.c : added support for 'description' property.
5501         * libspi/accessible.c
5502         * libspi/desktop.c
5503         * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
5504             (since the two are now equivalent in libbonobo)
5505         * idl/Action.idl
5506         * idl/Component.idl
5507         * idl/Hyperlink.idl
5508         * idl/Image.idl
5509         * idl/Selection.idl
5510         * idl/Table.idl
5511         * idl/Text.idl
5512         * idl/Value.idl : changed these 'secondary' interfaces to inherit from
5513              Bonobo::Unknown as does Accessibility::Accessible.
5514         * idl/StreamableContent.idl : as above, and replaced internal InputStream
5515              interface with Bonobo::Stream, since it was redundant with it.
5516              (The Stream returned by a StreamableContext object is expected to
5517              implement only a subset of Bonobo::Stream)
5518
5519 2001-07-28  Anders Carlsson  <andersca@gnome.org>
5520
5521         * libspi/accessible.c (accessible_object_finalize): Change
5522           g_free to g_object_unref since the AtkObject is a GObject.
5523
5524 2001-07-30  Bill Haneman <bill.haneman@sun.com>
5525
5526         * idl/Accessibility.idl: add new IDL files
5527         
5528         Added:
5529         * idl/Action.idl: Definitions of actionable UI object
5530         * idl/Component.idl: Definitions of UI component geometry, etc.
5531         * idl/Hyperlink.idl: Defs of hyperlink behavior
5532         * idl/Image.idl: Def of accessible image
5533         * idl/Selection.idl: Definition of UI object with selectable children
5534         * idl/StreamableContent.idl: Definition of UI object with streamable backing data
5535         * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
5536         * idl/Text.idl: Interface defs for UI elements with complex textual content
5537         * idl/Value.idl: Definition of UI element that is a value controller or display
5538         
5539 2001-07-27  Michael Meeks  <michael@ximian.com>
5540
5541         * po/Makefile.in.in: remove autogenerated file from CVS.
5542
5543         * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
5544         type library.
5545
5546         * idl/Registry.idl: include guard.
5547
5548         * idl/Accessibility.idl: Add, and include all the other IDL
5549         files.
5550
5551         * idl/*.idl: remove mass of pragmas etc.
5552
5553 2001-07-26  Michael Meeks  <michael@ximian.com>
5554
5555         * registryd/Makefile.am (registryd_SOURCES): remove
5556         redundant at_.
5557
5558 2001-07-27  Mark McLoughlin <mark@skynet.ie>
5559
5560         * libspi/.cvsignore, registryd/.cvsignore,
5561           test/.cvsignore: updated.
5562
5563         * po/Makefile.in.in: gettext update.
5564
5565 2001-07-25  Bill Haneman <bill.haneman@sun.com>
5566
5567         * initial CVS checkin
5568
5569 2001-06-29  Michael Meeks  <michael@ximian.com>
5570
5571         * configure.in: add AM_CONFIG_HEADER to gen config.h
5572
5573         * acconfig.h: add.
5574