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