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