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