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