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