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