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