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