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