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