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