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