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